gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 13:28:40 25 4
gpt4 key购买 nike

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

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

而你继承了这个类,想修改str的值,有没有可能不触及MyClass.mMyClass.h?

谢谢。

最佳答案

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

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

但是不要这样做。该属性对 *.h 中的公共(public)接口(interface)是隐藏的,因为父类的开发人员想要隐藏它。

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

所以,不要这样做。

关于iphone - 访问无法修改的父类扩展中定义的 Obj-C 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12402890/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com