【发布时间】:2014-03-13 04:54:54
【问题描述】:
我更新到 Xcode 5.1 并且无法再构建我的几个使用 Core Plot 1.4 的项目,普遍抱怨垃圾收集,并建议我转换为 ARC。我遵守了,但有几个语句无法转换。我很快就来SO寻找解决方案,我在这里找到了一个有希望的解决方案:
Core Plot and Xcode 5.1 - How to convert Core Plot to ARC?
我遵循了这个建议,它对转换为 ARC 有效。但是,我现在在 CPTTextStylePlatformSpecific.m 中留下了 2 个错误(不是警告),它抱怨:“隐式转换失去整数精度:'NSTextAlignment'(又名'unsigned long')到'CPTTextAlignment'(又名'enum _CPTTextAlignment')” .在 Xcode 更新之前构建项目时未出现此问题。
违规代码:
// Text alignment and line break mode
NSParagraphStyle *paragraphStyle = [attributes valueForKey:NSParagraphStyleAttributeName];
if ( paragraphStyle ) {
newStyle.textAlignment = paragraphStyle.alignment;
newStyle.lineBreakMode = paragraphStyle.lineBreakMode;
}
return [[newStyle copy] autorelease];
这里:
// Text alignment and line break mode
NSParagraphStyle *paragraphStyle = [attributes valueForKey:NSParagraphStyleAttributeName];
if ( paragraphStyle ) {
newStyle.textAlignment = paragraphStyle.alignment;
newStyle.lineBreakMode = paragraphStyle.lineBreakMode;
}
return newStyle;
在这两种情况下,错误都在行
newStyle.textAlignment = paragraphStyle.alignment;
我猜枚举是一个整数,而整数到长赋值是问题所在。似乎它值得一个警告,而不是一个错误。我可以设置一个编译器标志来实现这一点吗?还是我遗漏了一个更大的问题?
【问题讨论】:
-
当错误开启时是否有警告?
-
Jshier,出色而及时的响应。提交问题后,我刚刚发现了这个“相关”帖子:link