Я хочу определить один протокол с немногими свойствами и потребностью использовать те свойства в другом подклассе NSObject. Дайте мне ссылку или пример кода. Мне нужно это для работы с 10,5.
Спасибо ПРОВЕРЬТЕ СЛЕДУЮЩИЙ ПРИМЕР КОДА
@protocol MyProtocol
@property (nonatomic, readonly) id someObject;
@property (nonatomic, getter=isAlive) BOOL alive;
@end
#import "MyProtocol.h"
@interface MyCustomClass : NSObject <MyProtocol>{
}
@end
#import "MyCustomClass.h"
@implementation MyCustomClass
@synthesize someObject,alive;
/*
- (id)someObject {
return nil;
}
- (BOOL)isAlive {
return YES;
}
- (void)setAlive:(BOOL)aBOOL {
}
*/
@end
** Добавленный: код Compling с x86_64 архитектурой хорошо работает. Но ошибка, если я изменю архитектуру на i386, затем я получаю соблюдающие предупреждения:
MyCustomClass.m:13: error: synthesized property 'someObject' must either be named the same as a compatible ivar or must explicitly name an ivar
error: synthesized property 'alive' must either be named the same as a compatible ivar or must explicitly name an ivar
Я просто хочу знать, почему это работает в x86_64 с @synthesize а не в i386. **
@property
просто говорит компилятору, что класс должен определить методы, соответствующие этому свойству.
@protocol MyProtocol
@property (nonatomic, readonly) id someObject;
@property (nonatomic, getter=isAlive) BOOL alive;
@end
Все, что реализует этот протокол, теперь должно иметь
- (id)someObject;
- (BOOL)isAlive;
- (void)setAlive:(BOOL)aBOOL;