/ / Защо името на моята вътрешна променлива член нарушава обвързването на данни? - какао, какаови връзки

Защо името на моята вътрешна променлива член нарушава обвързването на данните? - какао, обвързани с какао

Така че наистина съм нов за програмирането на какао. Всъщност и аз съм много нов за платформата на Mac. Все още се опитвам да свикна с факта, че контрол + лява стрелка ме отвежда до началото на реда.

Добре: Така че аз работя през уроците в книгата "Програмиране на какао (4-то издание) от Hillegass). Така стигнах до глава 9, която преминава през създаване на приложение за преглед на документи, което използва NSArrayControler, за да се свърже с NSMutableArray of Person" s ,

Урокът ме преведе през създаването на подклас на документ и добавяне на NSMutableArray указател. Така че аз взех малко свобода и го нарекох mE Employee 's, а не само служители.

@interface RMDocument : NSDocument
{
NSMutableArray* mEmployees;
}
-(void) setmEmployees:(NSMutableArray*)a;

-(void) insertObject:(Person*)p inEmployeesAtIndex:(NSUInteger)index;
-(void) removeObjectFromEmployeesAtIndex:(NSUInteger)index;

-(void) startObservingPerson:(Person*) person;
-(void) stopObservingPerson:(Person*) person;

@end

Сега, когато направих това, изглежда, че обвързването е прекъснато за NSArrayController. Така че методи като setE zaposleee, insertObject и removeObject никога не са били извиквани.

Сега все още съм много нов за цел-C, но азмислех, че mE Employee "s е вътрешна променлива на член в моя" RMDocument "интерфейс и че мога да го назова каквото искам. Исках да префиксирам името с" m ", за да го различа от други имена на променливи (Вид на като член променливи в C ++). Очевидно това е голям не не.

Така че защо името на променливата имаше толкова голям ефект?

Поставих целия източник на проекта на: https://www.dropbox.com/sh/fq166ap3xzlw5xc/EZJXqIZPRY/RaiseMan

Благодаря!

Отговори:

2 за отговор № 1

Името на вашия метод за достъп трябва да следва конвенциите за именуване: за свойство "foo", setter е "setFoo" (обърнете внимание на главни букви). Така че, трябва да имате setMEmployees, не setmEmployees.

Като странична забележка, идеята ви за префиксиране на променливите член с "m" не е типичен за какао стил; може да затрудни кода ви по-трудно за четене.