NSInvocation для чайников ?

Как именно работает NSInvocation работа? Есть хорошее введение?

я, в частности, возникают проблемы, понимание того, как следующий код (из Какао Программирования для Mac OS X, 3rd Edition) работ, а также уметь применять понятия, независимо от учебник образца. Код:

- (void)insertObject:(Person *)p inEmployeesAtIndex:(int)index
{
    NSLog(@"adding %@ to %@", p, employees);
    // Add inverse of this operation to undo stack
    NSUndoManager *undo = [self undoManager];
    [[undo prepareWithInvocationTarget:self] removeObjectFromEmployeesAtIndex:index];
    if (![undo isUndoing])
        [undo setActionName:@"Insert Person"];

    // Finally, add person to the array
    [employees insertObject:p atIndex:index];
}

- (void)removeObjectFromEmployeesAtIndex:(int)index
{
    Person *p = [employees objectAtIndex:index];
    NSLog(@"removing %@ from %@", p, employees);
    // Add inverse of this operation to undo stack
    NSUndoManager *undo = [self undoManager];
    [[undo prepareWithInvocationTarget:self] insertObject:p
                                       inEmployeesAtIndex:index];
    if (![undo isUndoing])
        [undo setActionName:@"Delete Person"];

    // Finally, remove person from array
    [employees removeObjectAtIndex:index];
}

я понимаю, что он пытается делать. (КСТАТИ, employees NSArray пользовательского Person класса.)

Будучи .NET парень, я пытаюсь связать незнакомых Obj-C и Какао концепций приблизительно аналогично .NET концепций. Это, похожими на .NET делегат концепции, но нетипизированные?

Это не 100% ясно из книги, так что я кое-что ищу дополнительную от реальных Какао/Obj-C экспертов, опять же с целью, что я понимать основные концепции под простой(Иш) пример. Мне очень хочется, чтобы уметь самостоятельно применять знания, -- до тех пор, пока глава 9, мне было не трудно это делать. Но теперь ...

заранее Спасибо!

Найдено 4 ответа:

NSInvocation for Dummies?

http://stackoverflow.com/questions/313400/nsinvocation-for-dummies

Посмотреть решение →

Яндекс.Метрика