Một lớp Swift đơn giản có một trường kiểu var Array. Khi lớp được thích nghi với Objective-C kiểu trường được tiếp xúc như NSArray (bất biến) trong khi nó phải được NSMutableArray (có thể thay đổi)Trường lớp Swift loại var Array được chuyển thành NSArray bất biến thay vì NSMutableArray
class Categoryy: NSObject {
var items = Array<Item>()
}
Các Categoryy lớp nhanh chóng được điều chỉnh để Objective-C trong tiêu đề Xcode tạo tập tin MODULE_NAME-swift.h như sau:
SWIFT_CLASS("_TtC8waiterio9Categoryy")
@interface Categoryy : NSObject
@property (nonatomic, copy) NSArray * items;
- (instancetype)init OBJC_DESIGNATED_INITIALIZER;
@end
là có một cách cho các mục var: trường mảng được chuyển đổi sang một NSMutableArray có thể thay đổi trong Objective-c?
Bạn không thể thay đổi tiêu đề để NSMutableArray? – erdekhayser
nó không phải là một giải pháp khả thi: (Tiêu đề Xcode tạo cho Swift có tên MODULE-swift.h bị xóa và tái tạo bởi Xcode mỗi lần một trong những tệp nhanh chóng thay đổi một trường hoặc chữ ký phương thức. các trường từ NSArray tới NSMutableArray nhưng ngay khi bạn thay đổi các trường hoặc các phương thức của một tập tin nhanh chóng, tất cả các thay đổi của bạn đều bị mất – Giorgio
Bạn đã tạo ra một radar về điều này chưa? –