2010-06-22 2 views
1

Я понимаю, что делегаты связаны с другими объектами (например, UITextField и т. Д.). Но я пытаюсь найти простой пример настройки/использования настраиваемого делегата независимо. Любые подсказки/указатели будут высоко оценены.Пример пользовательского делегата в Objective-c

Мое понимание до сих пор:

#import <Foundation/Foundation.h> 

@class TheBox; 

@protocol TheBoxDelegate <NSObject> 
-(void)theBoxDelegateWillDoSomething:(TheBox *)theBox; 
@end 

@interface TheBox : NSObject { 
    id <TheBoxDelegate> delegate; 
} 
@property(assign) id <TheBoxDelegate> delegate; 
@end 

.

#import "TheBox.h" 

@implementation TheBox 
@synthesize delegate; 

@end 

// Some other class will conform to <TheBoxDelegate> and 
// implement the method -(void)theBoxDelegateWillDoSomething: 

Проблема, которую я имею в простом базовом приложении, где для создания экземпляра этого, как управлять его память мудрой и как вызвать его/получить делегат, чтобы дать некоторую простую обратную связь. Одна из первоначальных концепций, которые меня отключали, заключалась в том, что заголовок метода, определенный в протоколе, реализован на объекте, соответствующем протоколу.

Gary.

+0

Разъяснения: Вы спрашиваете, как сделать объект для использования в качестве делегата или как сделать объект, который делегаты некоторые из его поведения? – Chuck

+0

Привет, Чак, я пытаюсь понять, как настроить простой класс делегата, как его создать и как его называть. – fuzzygoat

ответ

1

Делегирование - это всего лишь шаблон дизайна, здесь очень мало церемоний. Обычно, если вы пытаетесь делегировать метод, который вы проверяете, чтобы проверить, реализует ли объект-делегат данный метод (отвечает на селектор), и если вы передаете вызов этому объекту.

Вот хорошая отправная точка в Документах Аппель по теме.

http://developer.apple.com/mac/library/documentation/cocoa/conceptual/ObjCRuntimeGuide/Articles/ocrtForwarding.html

Смежные вопросы