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

标签 ios iphone objective-c

我正在开发一款应用程序,让音乐家可以练习乐器的指法。我有一个名为“音符”的类,用于创建要使用的新音符,还有一个名为“音阶”的类,用于将音符组织成音阶,以便用手指弹奏。然而,每当我想制作一个新的音阶时,我都必须一遍又一遍地声明相同的音符。有没有办法创建一个函数来创建无限使用的所有笔记?

创建新音符并分配名称和指法:

注意 *Bb = [[注意 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;

谢谢。

最佳答案

在注释中添加静态方法:

+ (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;
}

关于ios - 如何避免不得不一遍又一遍地重新创建对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23161780/

相关文章:

ios - CTLineGetTypographicBounds 的问题

ios - 是否有任何用 C/C++ 编写的开源 EGL 测试套件?

iphone - UILabel 更新在滚动 UIScrollView 期间停止

iphone - Objective-C 的单元测试和代码覆盖框架?

iphone - iOS - 线程不会回到主线程

objective-c - 在 UIWebView 中预加载 JavaScript

ios - 响应大小 767px-768px 不显示在 ipad 上

ios - 如何添加 Instagram 模型 'like' 动画?

ios - 定义大于 iPhone 6 屏幕尺寸?

objective-c - 如何判断对象是否为NSNumber