开发中遇到的问题以及解决方法
2016-07-04 本文已影响72人
2d899c5242bd
开发中遇到的问题以及解决方法声明:文章条目旨在帮助想要快速解答问题的同学,虽然答案多是楼主自己用过的,但也只可以将解答作为一个参考。
- 野指针报错。由于没给error 赋值初始值,导致获取到了异常exc_badacces。(
该条目没有按数字顺序因简书排版问题
)
NSError *error ;//正确写法NSError *error = nil
NSDictionary *responseDict = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:&error];
- 用instruments 真机测试iOS9.2的设备提示,'unable to find service for the device',~> 重启设备,连接设备到MAC,在Xcode点击快捷键 command + i.
- 此类常量需放在全局符号表中,以便可以在定义该常量的编译单元之外使用。
// In the header file
extern NSString *const EOCStringConstant;
// In the implementation file
NSString *const EOCStringConst = @"Value";
- 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时区取 年 月 日。
- 仅支持竖屏的iPad app,在横屏状态下打开会先显示横屏,然后自动调整为竖屏。怎么破??? 该现象在iOS 9下很容易复现。
- "certificate expired or has been revoked".
进入目录删除该账号对应的provising file即可。~/Library/MobileDevice/Provisioning\ Profiles
参考链接stackoverflow - 批量添加 "-fobjc-arc"
$ sh xproj -n -s 需要添加编译参数的文件所在的文件夹 -t 目标工程文件
# sh xproj -n -s ./ZXingObjC -t test.xcodeproj
参考链接 传送门
- 禁止单个UIViewController旋转,但是又支持多个方向的需求。(iOS 6以后可按此方法)
- (BOOL)shouldAutorotate {
return NO;
}
- (UIInterfaceOrientationMask)supportedInterfaceOrientations {
return UIInterfaceOrientationMaskLandscape | UIInterfaceOrientationMaskPortrait;
}
- 隐藏状态条
1.在info.plist 中设置Status bar is initially hidden为YES
2.在info.plist中设置View controller-based status bar appearance 为NO
- 加急审核填写理由可以用中文吗? A:可以
iOS 11 update
- iOS 11向用户相册保存图片crash. A:iOS 11 新增了key NSPhotoLibraryAddUsageDescription 保护相册隐私。