繁体   English   中英

访问无法修改的父类扩展中定义的Obj-C属性

Accessing Obj-C property defined in parent class extension that you can't modify

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

假设您的父类是,例如MyClass.m

@interface MyClass()
  @property (nonatomic, readwrite, retain) NSString * str;
@end

并且您从此类继承并且想要修改str的值,是否可以不触摸MyClass.mMyClass.h吗?

谢谢。

1 个回复

是的,您可以,只需使用KVC:

 [anObject setValue:@"foo" forKey:@"str"];
 NSString* x =[anObject valueForKey:@"str"];

但是不要这样 该属性在*.h的公共接口中隐藏,因为父类的开发人员希望将其隐藏。

最终,父类的开发人员可能只是停止使用该属性。 然后,使用此属性的代码将崩溃。

所以,不要这样做。

1 在Swift中使用Obj-C类扩展吗?

我使用Xcode的Add files...在我的Swift项目中添加了一些Obj-C代码(出色的Expressions ),但是它没有问我是否要创建桥接头。 因此,我在Obj-C代码小组中成为了我自己,对其进行了编辑,以#import我所需的单个标头,并确保在Build Settings中的S ...

3 obj-c类中的未知swift属性

我已经声明了var coordinate:CLLocationCoordinate2D?属性var coordinate:CLLocationCoordinate2D? 在我的swift类中,但是我在obj-c类中找不到此属性。 我试图在类之前添加@obj ,但是它不起作用。 ...

2016-03-14 06:46:02 3 240   ios/ swift
7 覆盖最初在Obj-c超类中定义的swift类中的属性

尽管我完全赞赏强类型实现的不好做法,但是我有一些通用代码需要在子类中进行更改。 obj-c代码中的getter和setter处理id类型的值,因此它需要更通用的值。 无论如何,有没有将Swift定义为一个属性,以使其完全替代超类属性? 具有(id)类型的Obj-c的松散类型性质允 ...

2016-07-24 16:26:41 1 37   swift
8 从C ++函数(iOS)访问Obj-C属性

我正在编写一个iOS应用程序,该应用程序使用Core Audio API在AppDelegate中进行了一些音频处理。 我的AppDelegate中有一个@property ,它已在ViewController中更新,并且需要在用C ++编写的渲染回调函数中访问此@property 。 我发 ...

9 Obj-C无法解析HTML

我正在解析一些HTML,当我不知道该节点为零时,我一直得到该节点为零,并且我已经在Safari和Chrome中评估了相同的xPath字符串,并把我带到了我想要的代码所在。 在viewDidLoad 在getMenuItems: 在getData: 但是tutoria ...

10 强制obj-c在访问nil属性时抛出异常

通过创建例如NSMutableArray* myArray属性然后忘记分配self.myArray = [NSMutableArray array];我被抓出太多次了self.myArray = [NSMutableArray array]; in -init 。 我的应用程序当然不会在这种 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2021 STACKOOM.COM