iOS开发问题归纳

1、做iOS 10的本地推送

  • (nullable NSURL *)URLForResource:(nullable NSString *)name withExtension:(nullable NSString *)ext API_AVAILABLE(macos(10.6), ios(4.0), watchos(2.0), tvos(9.0));返回空值

原因是需要拷贝进来
image.png

2、单例

+ (instancetype)shared {
    return [[self alloc] init];
}

+ (instancetype)allocWithZone:(struct _NSZone *)zone {
    static id instance;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        instance = [super allocWithZone:zone];
    });
    return instance;
}

3、通知刷新 可以 修改为本地数据和网络数据同时修改(eg:删除操作post成功时,修改本地数据,减少一次网络请求 -> 通知刷新)

4、accessKey 内部校验,进行安全验证

5、网络状态码 http://www.lampweb.org/seo/5/10.html

6、push UIImagePickerViewController? 不能push导航控制器 只能模态出来

7、关于网络获取alert问题,解决方式

1)WiFi 下,临时启动蜂窝网络的无线网络助理,就能弹出那个允许使用数据了

2)如果在权限列表里 修改别的APP的权限 这个APP可能会重新刷新 出在列表里

8、AVPlayer 循环播放 加通知 // 跳到最新的时间点开始播放 [_player seekToTime:CMTimeMake(0, 1)]; [_player play]

9、Xcode8.0 打印问题 OS_ACTIVITY_MODE -> Disable

10、正式包 只有描述文件,没有证书,报错误xxx doesn't include signing certificate "iPhone Distribution链接手机也可以调试,因为这个开发状态

11、swift中弱化self [weak self] in guard let strongSelf = self else { return }

12、tableview去除多余空白cell tableView.tableFooterView = UIView()

13、滑动scrollView时 隐藏键盘 scrollView.keyboardDismissMode = .OnDrag

14、开关提示音 监听开关的改变状态,默认开启,APP杀死,后台,均为后台push一个音效,如果再APP中关闭提示音,可以让后台中的sound字段不传递,则无音效

15、在AppDelegate中present控制器时,需要拿到主控制器去present

16、nav 44,状态栏 20,tabbar 49 automaticallyAdjustsScrollViewInsets = false 恢复自定义,关闭系统自适应

17、UISearchBar 非谓词:从总数组使用forin遍历每一个item,使用item小写使用hasPrefix比对 searchText的小写

18、富文本 键值对错误 libc++abi.dylib: terminating with uncaught exception of type NSException

19、func didUpdateRecentSession(recentSession: NIMRecentSession, totalUnreadCount: Int) {} app退到后台可在此方法中进行对icon的badge的修改

20、3DTouch 中的分享功能,是由系统自动实现的,正常都需要进入app进行逻辑处理,也就是说,正常添加item最多四个,加上分享item,最多五个

21、tableView的数据源文件可以使用可变数组插入新数据,并且再最后reloadData

22、枚举能定义字符串么?

 答:OC中不能定义字符串,只能定义NSInterger和NSUInterger

23、数组指定类型为什么写枚举不可以?

  答:OC中数组可以指定类型,即“泛型”,方式   NSArray <NSString *> * arr = @[];

  在OC中,指定的类型只能为 对象类型 和 block

24、基类.m方法中实现一个私有方法,子类.m方法中同名实现了一个私有方法,会走子类

25、swift代理,协议中代理如果定义为可选类型,则需要delegate?.doAction?() 这样调用,防止崩溃

26、 'weak' mayonly be applied to class and class-bound protocol types

27、

  1. @objc protocol BookTiltleViewDelegate{ optional

  2. func choiceFace()

  3. }

  4. protocol BookTiltleViewDelegate:class//NSObjectProtocol{

  5. func choiceFace()

  6. }

28、tableview动画 guideCenterView.tableView.beginUpdates()//增删改查操作

             guideCenterView.tableView.endUpdates()

29、enumerateObjectsUsingBlock枚举遍历

30、在imageView上添加手势需要将isUserInteractionEnabled = YES

31、国际化,指在本地配置文件CFBundleDisplayName(Icon),NSLocalizedString(@"buttonTitle", nil)配合使用

32、messary 更新约束时只需要再block中更新不同的约束就可以,相同的不需要再写一遍

33、
- (void)applicationWillEnterForeground:(UIApplication *)application {

// Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background.

[application setApplicationIconBadgeNumber:0];JPUSH点击一条push清空其他push

[application cancelAllLocalNotifications];

[JPUSHService setBadge:0];开始受到两条推送,然后点开,角标消失,系统再发送推送,角标变为3

}

34、

  1. NSString *str1 = @"can you \n speak English";
  2. let str = NSCharacterSet(charactersInString: "qwertyuiopasdfghjklzxcvbnm")
  3. //在str1这个字符串中搜索\n,判断有没有
  4. if ([str1 rangeOfString:str].location != NSNotFound) {
  5. NSLog(@"这个字符串中有\n");
  6. }
  7. //rangeOfString 前面的参数是要被搜索的字符串,后面的是要搜索的字符
  8. //NSNotFound 表示请求操作的某个内容或者item没有发现,或者不存在

35、缩略图可以通过设置imageView的contentmode为A-Fill再将其切掉多余的即可

36、日历展示统一为公历 formatter/datePicker.calendar = NSCalendar(calendarIdentifier: NSCalendarIdentifierGregorian)

37、GCB直连 时时刷新 长连接

38、

    //MARK: 拨打电话
    class func callPhoneNumber(number: String) {
        if UIApplication.sharedApplication().canOpenURL(NSURL(string: "telprompt://\(number)")!) {
            UIApplication.sharedApplication().openURL(NSURL(string: "telprompt://\(number)")!)
        } else {
            let alert = UIAlertView(title: "该设备不能拨打电话\n\(number)", message: nil, delegate: nil, cancelButtonTitle: "知道了")
            alert.show()
        }
    }

39、if let语法

                //如果NIMSDK.sharedSDK().conversationManager.allRecentSessions() 有值时 将对应值赋值给array;如果没有值时不进入代码块
                if let array = NIMSDK.sharedSDK().conversationManager.allRecentSessions() {
                    strongSelf.nimSessions = array
                    Print.dlog("\(strongSelf.nimSessions.count)   \(strongSelf.nimSessions.underestimateCount())")
                }
               

40、

当ContentSize属性小于等于Frame时,将不会出发滚动

so -> ContentSize要大于 Frame

41、关于tableviewcell动画和tableview的左滑多选项https://github.com/pengshengsongcode/CustomTableViewAnimation

42、swift 中弱化 self
carView.changeCarClickBlock = {[weak self] in
guard let strongSelf = self else { return }

        let myCarVC = HBCMyCarViewController()
        myCarVC.hidesBottomBarWhenPushed = true
        strongSelf.belongVC?.navigationController?.pushViewController(myCarVC, animated: true)
       
    }

43、胶囊按钮

    //设置圆角
    UIBezierPath *maskPath1 = [UIBezierPath bezierPathWithRoundedRect:self.btn.bounds byRoundingCorners:UIRectCornerAllCorners cornerRadii:CGSizeMake(100, 100)];
    CAShapeLayer *maskLayer1 = [[CAShapeLayer alloc] init];
    maskLayer1.frame = self.btn.bounds;
    maskLayer1.path = maskPath1.CGPath;
    self.btn.layer.mask = maskLayer1;

重构!!!

1、语言方法异同

swift cellModel! is HBCTripFundInviteCellModel

oc[cellModel isKindOfClass:[HBCTripFundInviteCellModel class]]

2、泛型nsarray<nsstring *> *arrs

3、@property (nonatomic, strong) NSMutableArray *dataList;✔️

@property (nonatomic,copy) NSMutableArray *dataList; 初始化,add❌

4、OC枚举不能放非NSInteger,NSUInteger,OC指定类型不能指定枚举,只能指定对象和Block

5、[[UIPasteboard generalPasteboard] setValue:aValue forPasteboardType:UIPasteboardTypeListString[0]];

6、switch case OC应用

    switch (type) {

        case 1: case 2:

        {

       }

            break;

        case 3:

        {

            HBCDailyJourneyViewController *vc = [[HBCDailyJourneyViewController alloc] init];

            [self.navigationController pushViewController:vc animated:YES];

        }

            break;

        case 4:

        {

            HBCSingleJourneyViewController *vc = [[HBCSingleJourneyViewController alloc] init];

            [self.navigationController pushViewController:vc animated:YES];

        }

            break;

        default:

            break;

    }

7、跳转 APPStroe

    //999773808

    let commentURL = "itms-apps://itunes.[apple.com/app/id\](http://apple.com/app/id%5C)(appID)"

    let URL = NSURL(string: commentURL)

    if URL == nil {

        return

    }

    if UIApplication.sharedApplication().canOpenURL(URL!) {

        UIApplication.sharedApplication().openURL(URL!)

    }

8、动态加元素

NSMutableArray *section1 = @[].mutableCopy;

[self.hbc_sections removeAllObjects];

[self.hbc_sections addObject:section1];

9、当viewdidload结束 高版本会自动reloaddata tableview

10、ios7.0 layoutSubviews 中逻辑代码需要再[super layoutSubviews];之前,否则崩溃

11、 NSData *imageData = UIImageJPEGRepresentation(img, 0.75);

    UIImage *image = [UIImage imageWithData:imageData];

    NSData *compressData = UIImageJPEGRepresentation(img, 0.4);

    UIImage *compressedImage = [UIImage imageWithData:compressData];
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,053评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,527评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,779评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,685评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,699评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,609评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,989评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,654评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,890评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,634评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,716评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,394评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,976评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,950评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,191评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,849评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,458评论 2 342