【问题标题】:Also found '-(void) init'还发现'-(void) init'
【发布时间】:2011-02-08 11:47:40
【问题描述】:

我构建了一个名为 game 的自定义类:

.h

-(void) init;

这里我有一个 Also found '-(void) init'

.m

    -(void) init {
    [super init];
    score = 0;
    lives = 3;

    elements = [[NSMutableArray alloc] initWithCapacity:1000];
}

当我尝试初始化一个对象时:

myGame = [[Game alloc] init];

我得到“找到多个名为 '-init' 的方法 所以我不知道错误在哪里......

【问题讨论】:

    标签: objective-c class init


    【解决方案1】:

    init 应该总是返回 (id)。将您的功能更改为以下内容:

    .h

    -(id) init;
    

    .m

    -(id) init {
        if((self = [super init]))
        {
            score = 0;
            lives = 3;
    
            elements = [[NSMutableArray alloc] initWithCapacity:1000];
        }
    
        return self;
    }
    

    【讨论】:

    • Apple Objective-C 约定规定“初始化方法的返回类型应该是 id。”。
    猜你喜欢
    • 2022-11-15
    • 2022-11-07
    • 1970-01-01
    • 2021-06-18
    • 2015-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-23
    相关资源
    最近更新 更多