【问题标题】:How to access NSMutableArray from Objective-C in Swift如何在 Swift 中从 Objective-C 访问 NSMutableArray
【发布时间】:2016-04-09 04:28:18
【问题描述】:

我在 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'

【问题讨论】:

  • 你是否创建了一个客观的c桥接头?

标签: ios objective-c arrays swift


【解决方案1】:

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 文件中声明 events 属性和

使用情节提要参考实例化您的 DPCalendarTestStoryboardViewController viewController

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

【讨论】:

  • 它仍然有一个错误:(我认为问题与我如何从 objectC 调用数组有关。但无论如何谢谢!
  • 你需要在.h文件中声明events属性
  • 呃,我遇到了一个错误。知道如何解决吗?由于未捕获的异常“NSUnknownKeyException”而终止应用程序,原因:“[ setValue:forUndefinedKey:]:此类不符合键值编码的键练习单元。”
  • 是的,使用情节提要参考实例化您的 DPCalendarTestStoryboardViewController viewController
  • 嗯,对不起,你是怎么做到的?
猜你喜欢
  • 2016-10-02
  • 1970-01-01
  • 2020-10-28
  • 2016-03-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多