странная ошибка времени компиляции в Xcode

#iphone #xcode #syntax-error #compile-time

#iPhone #xcode #синтаксическая ошибка #время компиляции

Вопрос:

код в xcode 4.2

Игровая модель.h

 #import <Foundation/Foundation.h>

@interface Game_Model : NSObject{
    NSString  *playerName;
    int play;
    int won;
}

@property (nonatomic,retain) NSString *playerName;
@property (nonatomic,readonly,assign) int play;
@property (nonatomic,readonly,assign) int won;
@end
  

Игровая модель.m

 #import "Game Model.h"

@implementation Game_Model
@synthesize playerName,play,won;

 (NSString *)description{
    return [NSString stringWithFormat:@"%@. Player:%@. Score: %d/%d",[super description],self.playerName,self.won,self.play];
}
@end
  

Я сделал точно (или почти точно), как в книге, но я получил сообщения об ошибках:

  • неявное преобразование указателя Objective-C в ‘struct objc_class *’ запрещено с помощью ARC
  • ссылочный тип элемента ‘struct objc_class *’ является указателем; возможно, вы имели в виду использовать ‘->’?
  • неполное определение типа ‘struct objc_class’ Проблема с автоматическим подсчетом ссылок:
  • Неявное преобразование указателя Objective-C в ‘struct objc_class *’ запрещено с помощью ARC, я просто понятия не имею об этих ошибках! Пожалуйста, помогите мне!

Ответ №1:

description это не метод класса, а метод экземпляра. То, что вы создаете, является методом класса: (NSString*)description; . Вы не должны пытаться получить доступ к свойствам экземпляра (ivars) в методе класса. Измените на - . Удачи!

Комментарии:

1. Именно в этом и заключалась проблема! То, что я хотел сделать, это просто переопределить этот метод. Большое вам спасибо!

Ответ №2:

Я думаю, что вы пытаетесь сослаться на это

 [super description]
  

и это может немного все испортить, попробуйте возврат без этого и посмотрите, что произойдет

 return [NSString stringWithFormat:@"Player:%@. Score: %d/%d",self.playerName,self.won,self.play];
  

Комментарии:

1. Я не нашел этот пост полезным, потому что я решил все свои проблемы с помощью предыдущего поста, но все равно спасибо!