我有一些警告在ios 7& 8.当我们使用iOS 9时,它会给我一个警告。
这是警告:
' appearanceWhenContainedIn:'不推荐使用:首先在iOS 9.0中弃用 - 使用+ appearanceWhenContainedInInstancesOfClasses:而不是
所以我使用了这段代码:
[[UITextField appearanceWhenContainedInInstancesOfClasses:[UISearchBar class], nil] setTextColor:[UIColor whiteColor]];
而不是这段代码:
[[UITextField appearanceWhenContainedIn:[UISearchBar class], nil] setTextColor:[UIColor whiteColor]];
但是当我使用时,我得到了错误:
方法调用的参数太多,预期为1,有2
警告:
'base64Encoding' is deprecated: first deprecated in iOS 7.0
在以下代码中:
NSString *authValue = [NSString stringWithFormat:@"Basic %@", [authData base64Encoding]];
警告:
'searchDisplayController' is deprecated: first deprecated in iOS 8.0
在以下代码中:
[self filterContentForSearchText:searchText scope:[[self.searchDisplayController.searchBar scopeButtonTitles]
objectAtIndex:[self.searchDisplayController.searchBar selectedScopeButtonIndex]]];
警告:
'sendSynchronousRequest:returningResponse:error:' is deprecated: first deprecated in iOS 9.0 - Use [NSURLSession dataTaskWithRequest:completionHandler:] (see NSURLSession.h
在下面的代码中:
NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
我正在使用iOS9。我需要删除所有这些警告。提前谢谢!
答案 0 :(得分:42)
appearanceWhenContainedInInstancesOfClasses:
需要NSArray
个班级。因此:
[[UITextField appearanceWhenContainedInInstancesOfClasses:@[[UISearchBar class]]] setTextColor:[UIColor whiteColor]];
而不是base64Encoding
(自iOS 7.0以来已被弃用,因此不是对您的新警告),请使用以下命令:
NSString *authValue = [NSString stringWithFormat:@"Basic %@", [authData base64EncodedStringWithOptions:0]];
关于searchDisplayController
,请参阅this Q&A。
关于sendSynchronousRequest:returningResponse:error:
,错误消息是明确的。您需要重写应用的该部分才能使用NSURLSession
及其dataTaskWithRequest:completionHandler:
方法。互联网上有很多有用的资源,例如objc.io文章:“From NSURLConnection to NSURLSession”。