有一个目标c基类:
@interface ObjcClass : NSObject {
NSString *aVariable_;
}
和一个快速的子类:
class SwiftClass : ObjcClass {
func init() {
// aVariable_ can't be accessed here. An Objective-c derived
// class has direct access to it's super's instance variables!
}
}
如何从SwiftClass
中访问ObjcClass
aVariable_
发布于 2014-10-15 17:41:36
很棒的查询。我们已经很努力地完成了这件事。我找到的唯一可行的解决方案
通过使用self.valueForKey("aVariable_")
获取值
使用self.setValue("New Value", forKey: "aVariable_")
设置值
希望这能有所帮助。在不改变超类的情况下可能的解决方案。
发布于 2014-11-09 06:34:42
我已经为此搜索了很多次了。最后,我将我的代码从:
@interface PrjRec : NSObject {
@public
NSString* name;
}
@end
至:
@interface PrjRec : NSObject {
}
@property NSString* name;
@end
类似于@JasonTyler解决方案。然后,我可以使用简单的点符号<object instance>.name
从Swift代码访问我的对象属性,
但是我需要将所有现有的objective-c引用从
<object instance>->name
至:
<object instance>.name
或
_name
如果在类单元中。
我也希望有一个更好的解决方案。
发布于 2017-10-02 03:00:50
这对我来说是一个非常好的解决方案,只需添加一个Swift变量,如下所示:
var myInstanceVar: String {
return self.value(forKey: "myInstanceVar") as! String
}
https://stackoverflow.com/questions/26082999
复制相似问题