gpt4 book ai didi

objective-c - Objective C 中的动态原始类型属性设置

转载 作者:行者123 更新时间:2023-12-02 07:37:23 24 4
gpt4 key购买 nike

我正在尝试编写一个库,使其足够通用且有用。问题是它需要更新其他类的属性,属性和类都应该是动态的。

现在我可以使用公共(public)变量来做到这一点,没有问题,我只需传递一个指向我想要更新的变量的指针。然而,设置类的属性也非常有用,因为它们在 Objective C 中被广泛使用。

现在,只要属性是对象类型,尝试设置基本类型属性,这就不是问题。

我当前的代码看起来类似于以下属性:

NSInvocation* invoc = [NSInvocation invocationWithMethodSignature:[[myInstance class] instanceMethodSignatureForSelector:mySelector]];
[invoc setTarget:myInstance];
[invoc setSelector:mySelector];
[invoc setArgument:&myObject atIndex:2];
[invoc invoke];

然而,setArgument 方法仅允许指针类型,但属性允许具有任何原始类型。有什么方法可以动态分配基本类型属性吗?

最佳答案

KVO 应该为您进行转换:

[object setValue:[NSNumber numberWithInt:i] forKey:@"myVar"];

如果您的 myVar 定义为:

,则会将 NSNumber 转换为 int:
int myVar;
...
@propery (nonatomic) int myVar;

关于objective-c - Objective C 中的动态原始类型属性设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1032116/

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