Справка по написанию сценариев Какао, когда нужные данные не содержатся в базовом сценарии NSApplication.

У меня есть приложение какао, которое я пытаюсь сделать сценарием. Он имеет класс модели (подкласс NSObject), включающий свойство NSArray, которое содержит несколько пользовательских объектов "Элемент" отдельного класса. Мне нравится этот шаблон проектирования для этого приложения, потому что свойство массива для класса модели не требуется вне этого класса (и поэтому я не хочу включать его в подкласс / категорию NSApplication). Однако во всех примерах, которые я видел для создания приложения Cocoa со сценариями, объект сценариев верхнего уровня - это подкласс или категория NSApplication, которая включает в себя открытые данные в качестве свойства или элемента.

Напротив, у меня нет никаких свойств или методов в NSApplication. В качестве упрощенного примера см. Код ниже (из DataModel.h/DataModel в моем проекте):

#import <Foundation/Foundation.h>
#import "Element.h"

@interface DataModel : NSObject

@property (nonatomic) NSArray *elements;

@end

@implementation DataModel

@synthesize elements = _elements;

- (id)init {
    if (self= [super init]) {
        Element *element1 = [[Element alloc] init];
        element1.elementName = "first element";
        element1.elementNumber = "22";
        Element *element2 = [[Element alloc] init];
        element2.elementName = "second element";
        element2.elementNumber = "24";
        self.elements = [NSArray arrayWithObjects:element1, element2, nil];
    }
    return self;
}

@end

и этот код (для Element.h/Element.m - объекты, хранящиеся в NSArray "elements" ViewController:

#import <Foundation/Foundation.h>

@interface Element : NSObject {

}

@property (nonatomic) NSString *elementName;
@property (nonatomic) NSString *elementNumber;

@end

#import "Element.h"

@implementation Element

@synthesize elementName = _elementName, elementNumber = _elementNumber;

@end

Когда модель данных является собственным классом, как сделать "элементы" доступным свойством в моем файле sdef? Нужен ли мне спецификатор объекта в классе DataModel или Element? NSApplication не содержит свойств, элементов или команд в этом случае.

Спасибо!

0 ответов

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