gpt4 book ai didi

ios - 如果我的类是单例类,我如何创建指向 NSArray 的复制指针?

转载 作者:行者123 更新时间:2023-11-28 22:41:51 25 4
gpt4 key购买 nike

我有一个单例类。在这节课上,我拿着一首歌曲。这个数组不应该改变!在我的应用程序中,当我从我的歌曲列表中选择一首歌曲时,当前歌曲被插入到另一个变量中。这个变量是歌曲类型(数组是歌曲数组)。所以当我写的时候

_myDataMgr._currSong = [_myDataMgr.songArray objectAtIndex:index];

每次我更改此 currSong 变量时,songArray 都会更改,因为 currSong 指向此数组。所以我的问题是如何创建此 currSong 的副本?我对 NSCopy 有所了解,但我不知道如何真正使用它。谢谢你们。P.S: _myDataMgr 是单例

最佳答案

你应该让你的类符合 NSCopying 协议(protocol)。

@interface Song : NSObject <NSCopying>

然后,实现方法copyWithZone:

- (id)copyWithZone:(NSZone *)zone
{
id copy = [[[self class] alloc] init];

if (copy) {
// Copy properties here...
}

return copy;
}

当您需要实例的副本时,只需调用copy(我建议您在单例类中将歌曲插入数组时调用它。)

[myArray insertObject:[song copy]];

关于ios - 如果我的类是单例类,我如何创建指向 NSArray 的复制指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14302151/

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