2013-05-01 3 views
0
self.strID=nil; 

Это выскакивает ошибка говоря: причина: '- [BGFacebookHandler setStrID]: непризнанные селектор направлен например, 0x20525240' * Первый стек бросить вызов:Почему я не могу сделать self.strID = nil ;?

Однако я объявил свойство как читать записи в частном порядке:

@property (nonatomic) NSString * strID; 

Уловка также объявляется публично открытым протоколом. В основном я реализую это публичное свойство с частной собственностью.

Что случилось с моим подходом?

Очевидно, что я могу сделать @synthesize, но делать это означает использование устаревшей версии Objective-C

Это ошибка времени выполнения. Не ошибка компиляции. Кодий компилирует просто отлично.

+0

Вы уверены, что strID является собственностью BGFacebookHandler? –

+0

Он проходит проверку компиляции. Это ошибка времени выполнения. –

ответ

0

Объявление вашего свойства реализации как части вашего интерфейса или частного расширения ничего не меняет во время выполнения. Мне нужно что-то еще в коде, потому что у меня есть следующий фрагмент кода, который отлично работает:

@protocol Facebook<NSObject> 
- (NSString*) strID; 
@end 

@interface BGFacebookHandler : NSObject<Facebook> 
@property (retain) NSString * strID; 
@end 

@implementation BGFacebookHandler 
@end 

int main (int argc, const char * argv[]) 
{ 
    @autoreleasepool { 

     BGFacebookHandler *object = [[BGFacebookHandler alloc] init]; 
     object.strID = @"Hello"; 
     NSLog(@"strID = %@",object.strID); 
    } 
    return 0; 
} 
Смежные вопросы