无法将类型 'Int' 的值转换为原始类型 'DarwinBoolean'
Cannot convert value of type 'Int' to raw type 'DarwinBoolean'
从 Apple 开发者论坛 (https://forums.developer.apple.com/message/59905#59905) 交叉发布此内容。
我们最近第一次尝试使用 Xcode 7 GM 版本构建我们的项目。我在下面解释的我们遇到的问题在 Xcode 7.0 (7A220) 中仍然存在。
该项目部分由旧的 Objective-C 代码和部分较新的 Swift 代码组成。编译时,构建过程失败并出现以下错误:
<unknown>:0: error: cannot convert value of type 'Int' to raw type 'DarwinBoolean'
<unknown>:0: error: cannot convert value of type 'Int' to raw type 'DarwinBoolean'
在此错误之前运行的行是:
CompileSwift normal x86_64 <path_to_project>/PDFViewController.swift
由于这似乎没有太大帮助,我们开始尝试通过使用旧的 "comment all code and uncomment until it breaks" 方法来定位错误。
我追踪到错误被抛出到该文件中的一行 (PDFViewController.swift)。当我注释掉该行时,代码会编译,如果我保留它,则会出现上述错误。该行没什么特别的,它只是调用一个 Objective-C 服务,该服务应该 return 一个属性字符串的 NSArray:
var attributedStrings: [NSAttributedString] = orderService.attributedStringsForNotes(notes)
该方法的声明是:
- (NSArray<NSAttributedString *> *) attributedStringsForNotes:(NSString *) aString;
评论它的整个实现并不能解决编译时问题,所以我开始认为这可能是一个 Xcode 错误。
有什么我想念的吗?或者我可以获得更详细的错误消息?
在此先感谢您的帮助!
抱歉,我无法提供更小的最小工作示例,我只是不知道如何隔离它...
好的,我们已经解决了这个问题。正如预期的那样,错误消息被证明是毫无帮助的。
这个问题原来是一个非常愚蠢的问题。上面提到的 orderService
有一个在 .h
文件中声明的方法,该方法在 .m
文件中未实现并且从未使用过。它未实现的事实似乎触发了编译器错误,并带有关于 Int
无法转换为 DarwinBoolean
.
的令人难以置信的无用消息
删除头文件中的声明(或实现不需要的方法)解决了问题。
从 Apple 开发者论坛 (https://forums.developer.apple.com/message/59905#59905) 交叉发布此内容。
我们最近第一次尝试使用 Xcode 7 GM 版本构建我们的项目。我在下面解释的我们遇到的问题在 Xcode 7.0 (7A220) 中仍然存在。
该项目部分由旧的 Objective-C 代码和部分较新的 Swift 代码组成。编译时,构建过程失败并出现以下错误:
<unknown>:0: error: cannot convert value of type 'Int' to raw type 'DarwinBoolean'
<unknown>:0: error: cannot convert value of type 'Int' to raw type 'DarwinBoolean'
在此错误之前运行的行是:
CompileSwift normal x86_64 <path_to_project>/PDFViewController.swift
由于这似乎没有太大帮助,我们开始尝试通过使用旧的 "comment all code and uncomment until it breaks" 方法来定位错误。
我追踪到错误被抛出到该文件中的一行 (PDFViewController.swift)。当我注释掉该行时,代码会编译,如果我保留它,则会出现上述错误。该行没什么特别的,它只是调用一个 Objective-C 服务,该服务应该 return 一个属性字符串的 NSArray:
var attributedStrings: [NSAttributedString] = orderService.attributedStringsForNotes(notes)
该方法的声明是:
- (NSArray<NSAttributedString *> *) attributedStringsForNotes:(NSString *) aString;
评论它的整个实现并不能解决编译时问题,所以我开始认为这可能是一个 Xcode 错误。
有什么我想念的吗?或者我可以获得更详细的错误消息?
在此先感谢您的帮助!
抱歉,我无法提供更小的最小工作示例,我只是不知道如何隔离它...
好的,我们已经解决了这个问题。正如预期的那样,错误消息被证明是毫无帮助的。
这个问题原来是一个非常愚蠢的问题。上面提到的 orderService
有一个在 .h
文件中声明的方法,该方法在 .m
文件中未实现并且从未使用过。它未实现的事实似乎触发了编译器错误,并带有关于 Int
无法转换为 DarwinBoolean
.
删除头文件中的声明(或实现不需要的方法)解决了问题。