gpt4 book ai didi

objective-c - 在运行时创建实例变量

转载 作者:塔克拉玛干 更新时间:2023-11-01 19:10:46 24 4
gpt4 key购买 nike

我想在运行时动态创建实例变量,我想将这些变量添加到一个类别中。实例变量的数量可能会根据我用于定义它们的配置/属性文件而改变。

有什么想法吗??

最佳答案

使用Associative References - 这很棘手,但这是专门为您的用例发明的机制。

这是来自上面链接的示例:首先,您定义一个引用并使用 objc_setAssociatedObject 将其添加到您的对象中;然后您可以通过调用 objc_getAssociatedObject 取回该值。

static char overviewKey;

NSArray *array = [[NSArray alloc] initWithObjects:@ "One", @"Two", @"Three", nil];
NSString *overview = [[NSString alloc] initWithFormat:@"%@", @"First three numbers"];

objc_setAssociatedObject (
array,
&overviewKey,
overview,
OBJC_ASSOCIATION_RETAIN
);
[overview release];

NSString *associatedObject = (NSString *) objc_getAssociatedObject (array, &overviewKey);
NSLog(@"associatedObject: %@", associatedObject);

objc_setAssociatedObject (
array,
&overviewKey,
nil,
OBJC_ASSOCIATION_ASSIGN
);
[array release];

关于objective-c - 在运行时创建实例变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13757096/

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