ios - 如何修复弃用警告消息?

标签 ios objective-c ios4 deprecated

我使用了一个使用 xib 的项目中的一些代码。我使用 Storyboard。我是编码新手。代码运行良好,但我对 UITextAlignment(居中和左)、UILineBreakModeWordWrap、presentModalViewController:animated、dismissModalViewControllerAnimated 和minimumFontSize 有 17 个弃用警告。它们在 iOS 6.0 中已被弃用。我认为我已经添加了正确的文件来避免基于 xib 的示例中的这些文件(例如 ReaderViewController、ThumbsViewController、ReaderMain、ReaderMainPagebar 等),并编译它们。关于如何解决这些问题有任何线索吗?这严重吗?

self.imageRoll = [UIImage imageWithContentsOfFile:fPath];
UIImage *anImage = [UIImage imageNamed:self.imageRoll]; 

此外,在上面的代码中,我不断收到一条消息“不兼容的指针类型将“UIImage *”发送到“NSString *”类型的参数”这个变量“imageRoll”。有什么建议来处理这个问题?这些线条有不同的方法。

最佳答案

您可以通过将已弃用的符号替换为正确的替代符号来修复已弃用的警告。但请确保新符号适用于您需要支持的所有 iOS 版本。

示例 - UILineBreakModeWordWrap 已弃用,并替换为 NSLineBreakByWordWrapping。在这种情况下,好消息是您可以安全地将 UILineBreakModeWordWrap 替换为 NSLineBreakByWordWrapping。两者具有相同的枚举值,因此更改适用于所有版本的 iOS。

presentModalViewController:animated 已弃用,并在 iOS 5.0 中替换为 presentViewController:animated:completion:。只要您不想支持 iOS 4.3,请将 presentModalViewController:animated 替换为 presentViewController:animated:completion:

查看每个已弃用符号的引用文档。文档几乎总是告诉您替代品。再次确保替换方法始终可用到您正在使用的任何部署目标。

您发布的两行代码的问题很简单。 self.imageRoll 是定义为 UIImage 指针的属性。 UIImage imageNamed: 方法需要一个 NSString 来指定文件名。由于您已经有了第一行的图像,因此第二行应该是:

UIImage *anImage = self.imageRoll;

关于ios - 如何修复弃用警告消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16994123/

相关文章:

iOS 文本字段,具有部分安全文本输入类型•••••••••••••••0000

objective-c - 我应该从哪里开始 Mac 开发?

iphone - EXC_BAD_ACCESS错误

iphone - Xcode 帮助 - 升级 iPad 的当前目标

ios - HTTPsendRequest 很慢

ios - 在什么情况下dispatch_async(dispatch_get_main_queue(),^…什么都不做

ios - RxSwift 重新加载表格 View

objective-c - cocoa 中的碳崩溃 : EXC_BAD_ACCESS after NSAutoreleasePool is released

objective-c - 使用 ScriptingBridge 从另一个沙盒应用程序中编写 AppleScripting 沙盒应用程序

iphone - UITableView 中的 "mini-map"