Почему в экземпляре моего объекта отсутствуют свойства, которые я хочу назначить?
Я пытаюсь создать класс со свойствами, определенными в заголовке. Планировал заполнить объект в цикле for. Вот шапка, что я могу делать не так? Я неправильно определяю этот класс?
#import <UIKit/UIKit.h>
#import <CoreLocation/CoreLocation.h>
@interface ViewController : UIViewController<UIPickerViewDataSource,
...
@end
@interface PickerObject : NSObject
{
NSString *minutes;
NSNumber *label;
}
@end
В viewDidLoad я получаю сообщение о том, что свойство минут не найдено.
NSMutableArray *arr = [[NSMutableArray alloc] init];
for(int x = 0; x < total; x++)
{
PickerObject *myObject = [[PickerObject alloc] init];
myObject.minutes = x;
myObject.label = @"%@ minutes",x;
[_pickerData addObject:myObject];
//[_pickerData addObject:[NSNumber numberWithInt:x]];
[arr addObject:[NSNumber numberWithInt:x]];
}
Вот скриншот ошибки, изображающей свойство не найдено
1 ответ
Решение
Для доступа к переменным объекта используется точка "." Оператор в Objective-C, вам нужен метод сеттера. Самый простой способ добиться этого - определить свойство, например, так:
@interface PickerObject : NSObject
{
}
@property (nonatomic, strong) NSString *minutes;
@property (nonatomic, strong) NSNumber *label;
@end
Переменные объекта, методы установки и получения, которые вам нужны, будут синтезированы автоматически.