【发布时间】:2016-12-06 12:51:10
【问题描述】:
我有一个用 Swift 编写的类(模型),我想从 Objective C 类中访问它,但我不能。
为了解释更多,我有一个数组,该数组附加了该模型中用 Swift 编写的字典。
模型如下所示:
@objc class GoalPreviewModel: NSObject {
var id : Int?
var name : String?
init(dictionary: NSDictionary) {
self.id = dictionary["id"] as? Int
self.name = dictionary["name"] as? String
}
}
这个字典被这个模型很好地填充了,只要我从用 Swift 编写的类中访问它,一切正常。当我尝试访问该字典数组并访问属性时,就会出现问题。 当我想访问名称时,下面的语句工作正常。
[_nameLabel setText:[(NSString*) [[AppState sharedInstance].arrayOfDicts objectAtIndex:idx] valueForKey:@"name"]];
但是当我尝试访问 valueForKey:@"id" 它给了我这样的错误 “这个类不符合键 id 的键值编码。”
有人可以帮我解决这个问题吗?
提前致谢!
【问题讨论】:
-
出于好奇,如果您将属性重命名为
id以外的其他名称,它会起作用吗? -
@sbooth 我试过了,但是没用
-
你有seen this吗?
-
似乎
Int被桥接到不能为nil 的基本NSInteger(即没有可选性)。此外,如链接的问题和答案中所述,Int?无法桥接到NSNumber,因为NSNumber是一个对象,并且可能存储非整数值。 -
@paulvs 是的,我现在知道了,我现在就试试。谢谢!
标签: ios objective-c arrays swift dictionary