Чистые привязки со структурами - PullRequest
4 голосов
/ 02 мая 2010

У меня есть класс модели, для которого имеет смысл иметь переменные экземпляра NSSize и NSPoint. Это прекрасно.

Я пытаюсь создать интерфейс редактирования для этого объекта. Я хотел бы связать с size.width и еще много чего. Это, конечно, не работает.

Какое самое чистое, самое какао-у решение этой проблемы? Конечно, я мог бы написать отдельные средства доступа для отдельных членов каждой структуры, которую я использую, но, похоже, должно быть лучшее решение.

1 Ответ

3 голосов
/ 03 мая 2010

Вам не нужно создавать отдельные средства доступа для всех участников, вы можете просто создать оболочки для типов, которые вам интересны, например ::10000

@interface SizeWrapper : NSObject {
    CGFloat width, height;
}    
@property (readwrite) CGFloat width, height;    
- (id)initWithSize:(NSSize)sz;    
- (NSSize)sizeValue;
@end

@implementation SizeWrapper
@synthesize width, height;

- (id)initWithSize:(NSSize)sz {
    if (self = [super init]) {
        width  = sz.width;
        height = sz.height;
    }
    return self;
}

- (NSSize)sizeValue {
    return NSMakeSize(width, height);
}
@end
...