如何:忽略自动生成的“<project> -Swift.h”警告</project>

时间:2014-08-22 16:23:37

标签: objective-c xcode swift warnings

我有一个包含Swift和Objective-C代码的项目。 我没有任何警告,除了一个带有项目名称的文件,然后是后缀 -Swift.h ,它是来自Swift文件的自动生成的标题。

此文件不在我的项目导航器中,也不在Finder中的项目文件夹中。我无法在Build Phases中找到它来添加-fno-objc-arc

下次构建应用时,将删除更改文件并添加代码以禁止警告。

文件顶部是

// Generated by Swift version 1.0 (swift-600.0.47.8)

如何在不禁用项目中其他文件的有用警告的情况下摆脱此警告?


警告exmaples:

  

默认属性属性&#39;分配&#39;不适合非GC对象

     

否&#39;分配&#39;,&#39;保留&#39;或&#39;复制&#39;属性已指定 - &#39;分配&#39;假定


Swift代码:

@objc class ... {
    internal var label: Identifier
}

自动生成的代码(两种警告类型):

SWIFT_CLASS("_TtC12...")
@interface ...
@property (nonatomic) Identifier * label; // warnings here
@end

2 个答案:

答案 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