【发布时间】:2014-09-19 09:42:28
【问题描述】:
一个简单的 Swift 类有一个 var Array 类型的字段。当类适应 Objective-C 时,字段类型公开为 NSArray(不可变),而它应该是 NSMutableArray(可变)
class Categoryy: NSObject {
var items = Array<Item>()
}
Xcode生成的头文件MODULE_NAME-swift.h文件中的Categoryy swift类适配Objective-C如下:
SWIFT_CLASS("_TtC8waiterio9Categoryy")
@interface Categoryy : NSObject
@property (nonatomic, copy) NSArray * items;
- (instancetype)init OBJC_DESIGNATED_INITIALIZER;
@end
有没有办法将 var items : Array 字段转换为 Objective-c 中的可变 NSMutableArray?
【问题讨论】:
-
您无法将标头更改为 NSMutableArray?
-
这不是一个可行的解决方案 :( Xcode 生成的名为 MODULE-swift.h 的 Swift 标头在每次 swift 文件之一更改字段或方法签名时被 Xcode 擦除并重新创建。您可以手动将字段类型从 NSArray 更改为 NSMutableArray,但是一旦您更改了 swift 文件的字段或方法的签名,所有更改都会丢失。
-
您是否为此提交了雷达文件?
标签: objective-c swift nsmutablearray nsarray xcode6