【问题标题】:appearanceWhenContainedIn warning for ios 9ios 9的appearanceWhenContainedIn警告
【发布时间】:2015-11-04 15:20:37
【问题描述】:

我有一些在 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。我需要删除所有这些警告。提前致谢!

【问题讨论】:

  • 如果您在有问题的方法上单击命令,您将跳转到定义,并且在许多情况下,弃用通知应该告诉您改用什么方法。例如,+appearanceWhenContainedInInstancesOfClasses: 现在采用 NSArrayClass 对象,而不是 va_argsClass 对象列表。

标签: ios objective-c


【解决方案1】:

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”

【讨论】:

  • 嘿,rob,base64encoding 运行良好。但是 appearanceWhenContainedInInstancesOfClasses: 有 2 个错误:Expected identifier 我尝试添加,但错误仍然存​​在。第二个错误:` 选择器没有已知的类方法 'appearanceWhenContainedInInstancesOfClasses :setTextColor:'`
  • 我把括号弄错了。我敢打赌,只要你看一分钟,你就能弄清楚如何解决它。
  • 一个问题 - 我使用同步 - 死了它需要添加任何委托方法来解决我的警告,因为我没有使用任何委托方法......对于我的问题 - 4
猜你喜欢
  • 2016-01-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-31
  • 1970-01-01
相关资源
最近更新 更多