【问题标题】:SDK 6.1 UITextAlignment errorSDK 6.1 UITextAlignment 错误
【发布时间】:2013-03-27 17:22:21
【问题描述】:

我有一个在 iOS6 下编写的项目,兼容 iOS5 或以上。最近我重新打开项目,我有这个非常奇怪的错误

但在我所有的其他项目中,这条线工作正常。 有什么问题?

谢谢!

【问题讨论】:

  • @rmaddy:哦,抱歉.. 我刚刚更改了部署目标。所以它解决了我的问题.. 如果没有意义,我将删除我的答案。谢谢..我在下面粘贴了您的评论以帮助 Fry.. :)
  • 在这种情况下没关系。您需要使用 Base SDK 中可用的常量(根据您的标题,很可能是 6.1),而不是部署目标。新的 NSTextAlignment 常量向后兼容旧的 UITextAlignment 常量,只要你只使用 Left、Center 或 Right。 – rmaddy

标签: ios cocoa-touch compiler-errors


【解决方案1】:

较旧的UITextAlignment 枚举在 iOS 6.0 中已弃用。它已被 NSTextAlignment 枚举所取代。较新版本的编译器(带有较新版本的 Xcode)对此更加严格。

由于您的 Base SDK 是 iOS 6.1(基于您的问题的标题),编译器会抱怨您使用了错误的枚举值。

您的部署目标与编译器消息无关。好消息是,只要您坚持使用 LeftCenterRight 值,新的枚举就可以向后兼容旧的枚举。

将您的代码更改为:

_cartaServiziLabel.textAlignment = NSTextAlignmentCenter;

您的代码将被编译并适用于 iOS 2.0 及更高版本。

【讨论】:

  • 明确一点,iOS 6 做了两件事:它弃用了 UITextAlignment,并引入了实际上可以进行类型检查的枚举类型的概念。运行时不关心您使用什么“枚举类型”:它查看整数值,仅此而已。但 iOS 6 编译器(Xcode 4.5 及更高版本)能够警告您。您可以忽略警告。但不要!
  • @matt 没有 iOS 6 编译器。有 LLVM 编译器。较新版本的编译器增加了对枚举类型检查的支持。恰好这个更新的编译器从 Xcode 4.5 开始,恰好支持 iOS 6.0。
  • 我知道;只是为 OP 简化。
猜你喜欢
  • 2013-11-15
  • 1970-01-01
  • 1970-01-01
  • 2014-05-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-08
相关资源
最近更新 更多