首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >从Swift类访问Objective-c基类的实例变量

从Swift类访问Objective-c基类的实例变量
EN

Stack Overflow用户
提问于 2014-09-28 16:19:48
回答 4查看 6.6K关注 0票数 30

有一个目标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_

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-10-15 17:41:36

很棒的查询。我们已经很努力地完成了这件事。我找到的唯一可行的解决方案

通过使用self.valueForKey("aVariable_")获取值

使用self.setValue("New Value", forKey: "aVariable_")设置值

希望这能有所帮助。在不改变超类的情况下可能的解决方案。

票数 31
EN

Stack Overflow用户

发布于 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

如果在类单元中。

我也希望有一个更好的解决方案。

票数 3
EN

Stack Overflow用户

发布于 2017-10-02 03:00:50

这对我来说是一个非常好的解决方案,只需添加一个Swift变量,如下所示:

var myInstanceVar: String {
    return self.value(forKey: "myInstanceVar") as! String
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26082999

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档