如何修复Deprecations警告消息?

时间:2013-06-07 22:57:21

标签: ios objective-c ios4 deprecated

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

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

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

1 个答案:

答案 0 :(得分:1)

您可以通过将已弃用的符号替换为正确的替换来修复已弃用的警告。但请确保新符号适用于您需要支持的所有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;