如何从 Swift 中的 Objective-C 访问 NSMutableArray

How to access NSMutableArray from Objective-C in Swift

我在 Objective-C 中创建了一个名为 events 的 array,我希望能够将事件添加到 Swift 中的数组。这是我在 Objective-C 中对 属性 的声明:

@property (nonatomic, strong) NSMutableArray *events;

这是我在 Swift 文件中对数组的用法。

var objectC = DPCalendarTestStoryboardViewController()

@IBAction func addMedicine(sender: AnyObject) {
    objectC.events = [].mutableCopy
    var event: DPCalendarEvent = DPCalendarEvent(title: nameText.text, startTime: startDatePicker.date, endTime: startDatePicker.date, colorIndex: 2)
    objectC.events.append(event)
}

错误信息如下:

Value of type 'DPCalendarTestStoryboardViewController' has no member 'events'

Objective-C NSMutableArray 和 Swift Array 不同。您仍然可以在 Swift.

中使用 NSMutableArray 及其所有方法

将代码替换为

@IBAction func addMedicine(sender: AnyObject) {
    objectC.events = NSMutableArray()
    var event: DPCalendarEvent = DPCalendarEvent(title: nameText.text, startTime: startDatePicker.date, endTime: startDatePicker.date, colorIndex: 2)
    objectC.events.addObject(event)
}

并且您还需要在 .h 文件中声明事件 属性 和

使用故事板参考实例化您的 DPCalendarTestStoryboardViewControllerviewController

var objectC =  UIStoryboard(name: "storyboardNameHere", bundle: nil).instantiateViewControllerWithIdentifier("viewControllerIdentifier") as? DPCalendarTestStoryboardViewController