开发中遇到的问题以及解决方法

声明:文章条目旨在帮助想要快速解答问题的同学,虽然答案多是楼主自己用过的,但也只可以将解答作为一个参考。

开发中遇到的问题以及解决方法_第1张图片
图片发自App
  • 野指针报错。由于没给error 赋值初始值,导致获取到了异常exc_badacces。(该条目没有按数字顺序因排版问题)
NSError *error ;//正确写法NSError *error = nil
NSDictionary *responseDict = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:&error];
  1. 用instruments 真机测试iOS9.2的设备提示,'unable to find service for the device',~> 重启设备,连接设备到MAC,在Xcode点击快捷键 command + i.
  2. 此类常量需放在全局符号表中,以便可以在定义该常量的编译单元之外使用。
// In the header file
extern NSString *const EOCStringConstant;
// In the implementation file 
NSString *const EOCStringConst = @"Value";
  1. NSCalendar component:fromDate: 在华盛顿时区,对形如date 2017-09-03 00:00:00 +0000转换后NSDateComponents day少一天。解决办法
        _curCalendar=[NSCalendar currentCalendar];
        [_curCalendar setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"GMT"]];//添加该代码(原先没加出现的bug)
        [_curCalendar setFirstWeekday:2];

原因为

2017-09-03 00:00:00 +0000 该时区为 +0000,而华盛顿时区晚 4小时,所以为9月2号(其实并不是bug, 9月2号并没有错,时区不同)。如果想要取出day 为3,所以设置NSCalendar timeZone为+0000 即为 "GMT",这是在告诉NSCalendar按+0000时区取 年 月 日。

  1. 仅支持竖屏的iPad app,在横屏状态下打开会先显示横屏,然后自动调整为竖屏。怎么破??? 该现象在iOS 9下很容易复现。
  2. "certificate expired or has been revoked".
    进入目录删除该账号对应的provising file即可。~/Library/MobileDevice/Provisioning\ Profiles
    参考链接stackoverflow
  3. 批量添加 "-fobjc-arc"
$ sh xproj -n -s 需要添加编译参数的文件所在的文件夹 -t 目标工程文件

# sh xproj -n -s ./ZXingObjC -t test.xcodeproj

参考链接 传送门

  1. 禁止单个UIViewController旋转,但是又支持多个方向的需求。(iOS 6以后可按此方法)
- (BOOL)shouldAutorotate {
    return NO;
}

- (UIInterfaceOrientationMask)supportedInterfaceOrientations {
    return UIInterfaceOrientationMaskLandscape | UIInterfaceOrientationMaskPortrait;
}
  1. 隐藏状态条
1.在info.plist 中设置Status bar is initially hidden为YES

2.在info.plist中设置View controller-based status bar appearance 为NO
  1. 加急审核填写理由可以用中文吗? A:可以

iOS 11 update

  1. iOS 11向用户相册保存图片crash. A:iOS 11 新增了key NSPhotoLibraryAddUsageDescription 保护相册隐私。

文章会持续更新 ; ) 。

你可能感兴趣的:(开发中遇到的问题以及解决方法)