gpt4 book ai didi

objective-c - 使用中介来初始化对象

转载 作者:行者123 更新时间:2023-12-03 17:36:06 24 4
gpt4 key购买 nike

我总是看到我们使用中间对象,例如创建一个数组来填充另一个数组:

characters = [[NSArray alloc] initWithObjects:@"Antony", @"Artemidorus", @"Brutus", nil];  
play.characters = characters;
[characters release];

其中characters是对象play中的NSArray

我在 @property 及其 self 中看到了同样的情况:我们没有将新项目直接添加到此属性中,就像我们没有直接填充一样在上例中的字符中。这只是关于“风格”吗?

最佳答案

这不是风格问题。

play.characters 是一个属性,它可以“包含”现有数组或 nil,但即使它“包含”现有数组,您也可以'无法更改 NSArray 的内容,因此您必须创建一个新的 NSArray 并将其分配给该属性。

如果所有声明都正确,则分配给属性将导致其 setter 方法运行(如果您使用了 @synthesize,则可以由编译器创建,或者由您在代码中编写) ),这将负责删除任何现有数组,分配新数组并保留它。

关于objective-c - 使用中介来初始化对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6807027/

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