Почему в экземпляре моего объекта отсутствуют свойства, которые я хочу назначить?

Я пытаюсь создать класс со свойствами, определенными в заголовке. Планировал заполнить объект в цикле 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

Переменные объекта, методы установки и получения, которые вам нужны, будут синтезированы автоматически.

Другие вопросы по тегам