如何避免不得不一遍又一遍地重新创建对象?

时间:2014-04-18 20:27:23

标签: ios iphone objective-c

我正在创建一个应用程序,让音乐家练习乐器的指法。我有一个名为"注意"创建要使用的新笔记,我有一个名为" Scales"它将音符组织成可以指示它们的音阶。但是,每当我想要制作新的音阶时,我必须一遍又一遍地声明相同的音符。有没有办法创建一个能够创建所有笔记以供无限使用的函数?

创建新笔记并指定名称和指法:

Note *Bb = [[Note alloc]init]; Bb.noteName = @"Bb"; [Bb setFingering:0 :button1 :button2 :button3 :button4];

创建新比例:

Scale *Bb_major = [[Scale alloc]init];
[Bb_major makeScale:Bb :C :D :Eb :F :G :A];

makeScale声明:

-(void)makeScale:(NSObject*)note1 :(NSObject*)note2 :(NSObject*)note3 :(NSObject*)note4 :(NSObject*)note5 :(NSObject*)note6 :(NSObject*)note7;

感谢。

1 个答案:

答案 0 :(得分:2)

在注释中添加静态方法:

+ (Note *) noteBb
{
    static Note *Bb = nil;
    static dispatch_once_t onceToken = 0;
    dispatch_once(&onceToken, ^{
        Bb = [[Note alloc]init];
        Bb.noteName = @"Bb";
       [Bb setFingering:0 :button1 :button2 :button3 :button4];    
    });
    return Bb;
}