🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
object_setIvar 给一个对象的属性设置新值 ~~~ /** * Sets the value of an instance variable in an object. * * @param obj The object containing the instance variable whose value you want to set. * @param ivar The Ivar describing the instance variable whose value you want to set. * @param value The new value for the instance variable. * * @note \c object_setIvar is faster than \c object_setInstanceVariable if the Ivar * for the instance variable is already known. */ OBJC_EXPORT void object_setIvar(id obj, Ivar ivar, id value) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0); ~~~ ~~~ #import "ViewController.h" #import <objc/runtime.h> #import "Person.h" #import "Dog.h" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. Person * p1 = [[Person alloc] init]; Ivar ivar = class_getInstanceVariable([p1 class], "_name"); object_setIvar(p1, ivar, @"newNameValue"); NSLog(@"%@", p1.name); } ~~~ Person中name初始值为:@"sb" 输出: ![](https://box.kancloud.cn/2016-05-05_572b015402343.jpg)