Objective-c中的自定义委托示例

时间:2010-06-22 17:42:29

标签: iphone objective-c cocoa-touch

我理解使用与其他对象相关联的委托(即UITextField等)但我试图找到一个独立设置/使用自定义委托的简单示例。任何帮助/指针都将非常感激。

到目前为止,我的理解是:

#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:

我在一个简单的基本应用程序中遇到的问题是在哪里实例化,如何管理内存以及如何调用它/让委托给出一些简单的反馈。绊倒我的最初概念之一是协议中定义的方法头是在符合协议的对象上实现的。

加里。

1 个答案:

答案 0 :(得分:1)

代表团只是一种设计模式,涉及的仪式非常少。通常,如果您尝试委派一个方法,则检查委托对象是否实现了相关方法(响应选择器),如果是,则将调用传递给该对象。

这是Appel关于这个主题的文档的一个很好的起点。

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