Извините, что продолжаю задавать основные вопросы здесь, но я не знаю, куда еще идти.Написал некоторый код с ползунком, текстовым полем и кнопками для увеличения ползунка, чтобы продемонстрировать кодирование значения ключа.Все работало, найди.Следующим шагом было использование 'property' и 'synthesize' вместо методов доступа и сеттера;
#import <Foundation/Foundation.h>
@interface KVCController : NSObject {
int fido;
}
@property(readwrite, assign) int fido;
@end
~~~~~
@implementation KVCController
@synthesize fido;
- (id)init{
self = [super init];
if (self) {
// Initialization code here.
[self setValue:[NSNumber numberWithInt:5] forKey:@"fido"];
NSNumber *n = [self valueForKey:@"fido"];
NSLog(@"fido = %@", n);
}
return self;
}
~~~~~~~
@end
Я получил неполную реализациюошибка @mplementation KVCController.Если я добавлю методы get и set для 'fido', это прояснится.Вторая ошибка возникает с @synthesize fido ;.Это говорит, что собственность должна быть объявлена в реализации.Все правильно скопировано из книги, и, насколько я могу судить, оно выглядит так же, как и все другие варианты использования свойств и синтеза, на которые я смотрел.У кого-нибудь есть идеи о том, что я пропускаю или делаю неправильно?
Xcode 4.1 автоматически создает класс делегата, который я обычно игнорирую, если не работаю с делегатами.Я создал свой собственный класс для упражнения KVC и просто добавил в него объявления свойств / синтеза с соответствующими изменениями и получил ошибки.Я просто поместил объявления property / synthesize в класс делегата, переместил свой код IBAction в соответствующие места, переделал привязки и стер класс, который я создал, и все работало нормально.Должны ли объявления свойств / синтеза быть обработаны как материал делегата?