#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. Я не нашел этот пост полезным, потому что я решил все свои проблемы с помощью предыдущего поста, но все равно спасибо!