gpt4 book ai didi

objective-c - 设置值 :forKey: operation?

转载 作者:行者123 更新时间:2023-12-03 07:45:17 25 4
gpt4 key购买 nike

我很好奇下面的代码片段中的 setValue:forKey: 发生了什么:它只是将指针设置为指向每个数组,类似于...

[self setMyArray_1: animalArray];
[self setMyArray_2: animalArray];
[self setMyArray_3: animalArray];

另外:setValue:forKey 是否保留数组?我猜是这样的(就像上面那样)

代码片段:

// INTERFACE
@property(nonatomic, retain) NSArray *myArray_1;
@property(nonatomic, retain) NSArray *myArray_2;
@property(nonatomic, retain) NSArray *myArray_3;

// IMPLEMENTATION
@synthesize myArray_1;
@synthesize myArray_2;
@synthesize myArray_3;

for(counter=1; counter<=3; counter++) {
NSArray *animalArray = [[NSArray alloc] initWithObjects:@"cat", @"rat", nil];
NSString *propertyName = [[NSString alloc] initWithFormat:@"myArray_%d", counter];
[self setValue:animalArray forKey:propertyName];
[animalArray release];
[propertyName release];
}

加里

最佳答案

答案是肯定的,这两个代码片段本质上做的是同样的事情。 setValue:forKey 不保留数组,但它找到合成的 setMyArray_x 方法,该方法又保留数组。 iVarName 最好称为 propertyName 或 keyName。但是,如果您没有声明和合成属性,而是只有四个 ivars,setValue:forKey 仍然能够将它们设置为指向 animalArray 但它不会被保留

关于objective-c - 设置值 :forKey: operation?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2296072/

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