【问题标题】:Can I init an NSArray in a Singleton with specific values (like a const)?我可以在具有特定值(如 const)的单例中初始化 NSArray 吗?
【发布时间】:2012-01-26 22:52:54
【问题描述】:

我有一个 Singleton,我想声明一个 NSArray,但我想用 5 个(非连续的)整数来初始化它。

现在它在 .h>Interface、.h>@property 和 .m>@synthesize 中声明。

我该怎么做? 谢谢。

【问题讨论】:

    标签: iphone objective-c xcode


    【解决方案1】:

    在你的单例的 -init 方法中,只需在那里创建并初始化它:

    - (id)init
    {
        _array = [[NSArray arrayWithObjects:[NSNumber numberWithInt:5], [NSNumber numberWithInt:50], [NSNumber numberWithInt:3.72], [NSNumber numberWithInt:5], [NSNumber numberWithInt:96], nil] retain];
        return self;
    }
    

    【讨论】:

    • 糟糕,整数,不是字符串...试试[NSNumber numberWithInt:1] 等
    • 太棒了!感谢您提供的信息 - 我想我最好花更多时间学习 Obj-C...
    • @user1118321 嗯,这行不通。这就是我所拥有的:.h> @interface GlobalData : NSObject {NSInteger *myArray;} @property(nonatomic,assign)NSInteger *myArray; .m> @synthesize myArray; .m>init> mySingleton.myArray={3,10,16,24,30};
    • @wayneh 你说“那行不通”,会发生什么?编译错误?运行时错误?我很想知道,所以我以后不会提出不好的建议。不过,我很高兴你的方法奏效了。
    • @user1118321 对不起,我可能把你弄糊涂了。您的示例还可以,但我正在尝试实现一些更基本的东西(如果可能的话)。我的代码不起作用,因为 .m>init 中的分配失败,因为数组没有边界。我真的更喜欢“int”数组,所以我不必与 NSNumber/object 转换相冲突。还在纠结?
    猜你喜欢
    • 2020-09-17
    • 2010-09-29
    • 1970-01-01
    • 2011-05-03
    • 1970-01-01
    • 2021-12-08
    • 1970-01-01
    • 2016-05-10
    • 1970-01-01
    相关资源
    最近更新 更多