我正在创建一个应用程序,让音乐家练习乐器的指法。我有一个名为"注意"创建要使用的新笔记,我有一个名为" 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;
感谢。
答案 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;
}