iOS 程序中警告处理
程序中本地文字警告处理:
1、终极大招,屏蔽警告,一般不要用这个
例子:屏蔽过时警告
#pragmaclang diagnostic push
#pragmaclang diagnostic ignored "-Wdeprecated-declarations"
//这里写出现警告的代码
#pragmaclang diagnostic pop
需要屏蔽其他警告的请看网址:https://www.jianshu.com/p/eb03e20f7b1c
2、Xcode Archive出来的包在本地Organizer中看到的App没有图标的问题
解决:检查App中得xxx-info.plist文件中,添加Icon file属性,并填上非retian和Retian屏幕对应的icon文件名称(文件必须存在,且命名如下),如下图所示:
再次Archive即可发现,本地的Organizer中的App有icon了。
3、警告;Pointer is missing anullability type specifier.....
① 解决方法:可以使用const关键字的地方都可以使用__nullable和__nonnull,不过这两个关键字仅限于使用在指针类型上。
② 开始:NS_ASSUME_NONNULL_BEGIN
结束:NS_ASSUME_NONNULL_END
这两个要配合使用,在其区间的属性都会获得nonnull属性
③ 其实不只是AFHTTPSessionManager.h文件,AFNetworking中的其他头文件如AFNetworkReachabilityManager.h等也是这样处理的:
在@interface前加上NS_ASSUME_NONNULL_BEGIN,在@end后加上NS_ASSUME_NONNULL_END,可空的参数就给它加上nullable。
内容来源:https://www.jianshu.com/p/0564f70b352a
http://www.cocoachina.com/ios/20180125/21982.html
4、stringByAddingPercentEscapesUsingEncoding方法被替换iOS9.0
最近在Xcode中,即iOS9.0,发现之前的一个方法已经不被建议使用了。该方法名即题目中提到的:stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding,这个方法是用来进行转码的,即将汉字转码。可在iOS9.0中,该方法已经被另一个方法替代了,此方法即:stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSetURLQueryAllowedCharacterSet]。这次在对汉字进行转码的时候就使用该方法即可。
5、警告-All interface orientations must be supported unless the app requires full screen
解决方法:
6、出现In file included from /Users/XXXX/XXXX/XXXXDemo_IOS/…
问题:在宏定义class中添加了#warning
解决方法:去掉 宏定义class中的#warning
7、消除警告-kCFStreamNetworkServiceTypeVoIp is deprecated.........
问题:kCFStreamNetworkServiceTypeVoIp 过时了,需要新的来替换
解决方法:导入#import
将 kCFStreamNetworkServiceTypeVoIP换成 PKPushTypeVoIP
8、'setStatusBarStyle:animated:' is deprecated: firstdeprecated in iOS 9.0
问题:setStatusBarStyle:animated: 过时了,需要新的来替换
过时代码:
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault animated:NO];//白底黑字,
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent animated:NO];//黑底白字,
解决方法:
在info.plist中,添加值为false的UIViewControllerBasedStatusBarAppearance键。
然后正确代码为:
UIApplication.sharedApplication.statusBarStyle = UIStatusBarStyleDefault; //白底黑字,
UIApplication.sharedApplication.statusBarStyle = UIStatusBarStyleLightContent; //黑底白字,