【问题标题】:xcode 5.1 error implicit conversion loses precisionxcode 5.1错误隐式转换失去精度
【发布时间】: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

标签: cocoa core-plot


【解决方案1】:

我确实遇到了这个问题,发现在我导入到项目中的 CorePlot 项目中,我将“Apple LLVM 5.1 - 警告策略”、“将警告视为错误”设置为“是”。我仍然收到警告,但至少我可以构建并提交我的项目。 这仍然不理想,我真的很想要一个合适的解决方案 - 我想我只需要继续检查 CorePlot 存储库以获取更新。

【讨论】:

  • 更改“将警告视为错误”让我解决了这个问题,但升级到 Core Plot 1.5.1 也删除了警告。
猜你喜欢
  • 1970-01-01
  • 2023-03-30
  • 1970-01-01
  • 2019-02-09
  • 2010-12-11
  • 1970-01-01
  • 2014-06-20
  • 1970-01-01
相关资源
最近更新 更多