我有一个包含Swift和Objective-C代码的项目。 我没有任何警告,除了一个带有项目名称的文件,然后是后缀 -Swift.h ,它是来自Swift文件的自动生成的标题。
此文件不在我的项目导航器中,也不在Finder中的项目文件夹中。我无法在Build Phases中找到它来添加-fno-objc-arc
。
下次构建应用时,将删除更改文件并添加代码以禁止警告。
文件顶部是
行// Generated by Swift version 1.0 (swift-600.0.47.8)
如何在不禁用项目中其他文件的有用警告的情况下摆脱此警告?
警告exmaples:
默认属性属性'分配'不适合非GC对象
否'分配','保留'或'复制'属性已指定 - '分配'假定
@objc class ... {
internal var label: Identifier
}
SWIFT_CLASS("_TtC12...")
@interface ...
@property (nonatomic) Identifier * label; // warnings here
@end
答案 0 :(得分:1)
您需要在抛出错误的文件中导入UIKit。
夫特:
import UIKit
对象C:
#import <UIKit/UIKit.h>
另外,看看我以前的帖子: How to import Swift code to Objective-C
鉴于上述情况,尝试禁用“定义模块”,清理项目,然后重新启用“定义模块”。希望这会有所帮助。
答案 1 :(得分:0)
对原始问题的评论为我解决了这个问题。一旦我将生成的Swift.h文件导入ARC的非ARC Objective-C类转换为ARC,警告便消失了。
我有同样的问题。事实证明我有一个旧的目标-c 我设置-fno-objc-arc编译器标志的类和此目标-c 类导入-swift.h会导致此警告 合理的。最终我做了Objective-c类来支持ARC和 警告消失了。 - Berby Huang 2014年9月19日5:18