appearanceWhenContainedIn警告ios 9

use*_*630 16 objective-c ios

我有一些警告在ios 7和8中运行良好.当我们使用iOS 9时,它给了我一个警告.

这是警告:

'appearanceWhenContainedIn:'已弃用:首先在iOS 9.0中弃用 - 使用+ appearanceWhenContainedInInstancesOfClasses:而不是

所以我使用了这段代码:

[[UITextField appearanceWhenContainedInInstancesOfClasses:[UISearchBar class], nil] setTextColor:[UIColor whiteColor]];
Run Code Online (Sandbox Code Playgroud)

而不是这段代码:

[[UITextField appearanceWhenContainedIn:[UISearchBar class], nil] setTextColor:[UIColor whiteColor]];
Run Code Online (Sandbox Code Playgroud)

但是当我使用时,我得到了错误:

方法调用的参数太多,预期为1,有2个

警告: 'base64Encoding' is deprecated: first deprecated in iOS 7.0

在下面的代码中:

 NSString *authValue = [NSString stringWithFormat:@"Basic %@", [authData base64Encoding]];
Run Code Online (Sandbox Code Playgroud)

警告: 'searchDisplayController' is deprecated: first deprecated in iOS 8.0

在下面的代码中:

[self filterContentForSearchText:searchText scope:[[self.searchDisplayController.searchBar scopeButtonTitles]
                                                   objectAtIndex:[self.searchDisplayController.searchBar selectedScopeButtonIndex]]];
Run Code Online (Sandbox Code Playgroud)

警告: '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];
Run Code Online (Sandbox Code Playgroud)

我正在使用iOS9.我需要删除所有这些警告.提前致谢!

rob*_*off 43

appearanceWhenContainedInInstancesOfClasses:想要一NSArray堂课.从而:

[[UITextField appearanceWhenContainedInInstancesOfClasses:@[[UISearchBar class]]] setTextColor:[UIColor whiteColor]];
Run Code Online (Sandbox Code Playgroud)

而不是base64Encoding(自iOS 7.0以来已被弃用,因此不是对你的新警告),请使用:

NSString *authValue = [NSString stringWithFormat:@"Basic %@", [authData base64EncodedStringWithOptions:0]];
Run Code Online (Sandbox Code Playgroud)

关于searchDisplayController,请参阅此问答.

关于sendSynchronousRequest:returningResponse:error:,错误消息是明确的.您需要重写应用程序的该部分以使用NSURLSession其及其dataTaskWithRequest:completionHandler:方法.互联网上有很多有用的资源,比如这篇objc.io文章:"从NSURLConnection到NSURLSession".