Ошибка ARC: методы init должны возвращать тип, связанный с типом получателя [4] - PullRequest
8 голосов
/ 18 декабря 2011

Что не так с этим кодом в ARC?Я получаю вышеуказанную ошибку:

- (Moment *)initMoment:(BOOL)insert {

if (insert) {
    self.moment = [NSEntityDescription insertNewObjectForEntityForName:@"Moment" inManagedObjectContext:self.managedObjectContext];
  } else {
    self.moment = [NSEntityDescription insertNewObjectForEntityForName:@"Moment" inManagedObjectContext:nil];
  }
return self.moment;
}

1 Ответ

9 голосов
/ 18 декабря 2011

Метод init, который был опубликован в вопросе, был в неправильной форме.Метод init должен (обычно) иметь форму:

-(id)initWithParams:(BOOL)aBoolParam {
    if (self = [super init]) {
        //do stuff
    }
    return self;
}

Проблема с кодом выше заключалась в том, что он был выполнен как метод класса, поэтому, если автор этого хотел, он должен был сделать1006 * и верните его.

...