Ios 如果我的类是singleton类,如何创建指向NSArray的复制指针?

Ios 如果我的类是singleton类,如何创建指向NSArray的复制指针?,ios,objective-c,cocoa-touch,Ios,Objective C,Cocoa Touch,我有一个单身班。在这节课上,我拿着一系列的歌曲。此数组不应更改!在我的应用程序中,当我从歌曲列表中选择一首歌曲时,当前歌曲将插入到另一个变量中。这个变量是歌曲类型(数组是歌曲数组)。所以当我写作的时候 _myDataMgr._currSong = [_myDataMgr.songArray objectAtIndex:index]; 每次我更改此currSong变量时,songArray都会更改,因为currSong指向此数组。所以我的问题是,我怎样才能复制这首歌?我知道一些有关NSCopy的

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

_myDataMgr._currSong = [_myDataMgr.songArray objectAtIndex:index];
每次我更改此currSong变量时,songArray都会更改,因为currSong指向此数组。所以我的问题是,我怎样才能复制这首歌?我知道一些有关NSCopy的事情,但我真的不知道如何使用它。谢谢大家。
另外:
\u myDataMgr
是单例的

你应该让你的类符合

复制协议

@interface Song : NSObject <NSCopying>
当您需要实例的副本时,只需调用
copy
。(我建议在singleton类中将歌曲插入数组时调用此函数。)

哇,太快了:)但我怎么能用它呢?需要创建副本时调用此方法?(我只需要在特定的印刷机中插入)
- (id)copyWithZone:(NSZone *)zone
{
    id copy = [[[self class] alloc] init];

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

    return copy;
}
[myArray insertObject:[song copy]];