2013-10-11 2 views
0

У меня есть класс, содержащийвыпуск во время каротажа объекта

.h файл.

@interface NewsItem : NSObject 
{ 
NSString* _newsID; 
NSString* _newsTitle; 
NSString* _imageURL; 
NSString* _description; 
} 
@property (nonatomic, copy) NSString* newsID; 
@property (nonatomic, retain) NSString* newsTitle; 
@property (nonatomic, copy) NSString* imageURL; 
@property (nonatomic, copy) NSString* description; 

.m файл

@implementation NewsItem 
@synthesize newsID= _newsID; 
@synthesize newsTitle= _newsTitle; 
@synthesize imageURL = _imageURL; 
@synthesize description= _description; 

Всякий раз, когда я печатаю объект от точки останова статьи новостей, значение описания поля отображается вместо эталонного объекта адреса. Почему так?

Справка Пожалуйста, заблаговременно.

+0

Первое: вы не должны объявить частные переменные в фигурные скобки в файле '@ interface', если вы объявите свойства. Xcode сделал это для вас автоматически под капотом. '@ synhesize' также не требуется. Удалите его и оставьте только свойства. '_newsID, _newsTitle', _imageURL и _description' будут доступны. –

+0

Вы также должны изменить имя 'description', если вы не сознательно переопределите' -description' класса 'NSObject'. –

+0

И, пожалуйста, добавьте более подробный фрагмент кода. Как вы создаете и используете этот класс? Вставьте код, где возникает ошибка. –

ответ

0

Вы создали способ [NSObject description]. Удалить _description и @property description и реализовать description метод самостоятельно:

- (NSString *)description { 
    return [NSString stringWithFormat:@"newsID=%@, newsTitle=%@, imageURL=%@", self.newsID, self.newsTitle, self.imageURL]; 
} 

Этот метод будет называться всякий раз, когда вы делаете следующее:

NSLog(@"%@", newsItem); 
Смежные вопросы