У меня есть класс, который запускает следующий метод (получатель):
// the interface
@interface MyClass : NSObject{
NSNumber *myFloatValue;
}
- (double)myFloatValue;
- (void)setMyFloatValue:(float)floatInput;
@end
// the implementation
@implementation
- (MyClass *)init{
if (self = [super init]){
myFloatValue = [[NSNumber alloc] initWithFloat:3.14];
}
return self;
}
// I understand that NSNumbers are non-mutable objects and can't be
// used like variables.
// Hence I decided to make make the getter's implementation like this
- (double)myFloatValue{
return [myFloatValue floatValue];
}
- (void)setMyFloatValue:(float)floatInput{
if ([self myFloatValue] != floatInput){
[myFloatValue release];
myFloatValue = [[NSNumber alloc] initWithFloat:floatInput;
}
@end
Когда я нахожу курсор мыши на объект myFloatValue во время отладки, он не содержит значения.Вместо этого он говорит: «вне области видимости».
Я хотел бы иметь возможность выполнить эту работу, не используя @property
, используя что-то отличное от NSNumbers, или другие важные изменения, поскольку я просто хочу понять концепциипервый.Самое главное, я хотел бы знать, какую ошибку я, по-видимому, допустил.