目标c中的自定义代表

时间:2011-04-29 14:32:55

标签: objective-c delegates

我做过这样的课程:

testClass <UIAccelerometerDelegate>

我实现了委托方法。

然后在我想要这个委托的其他课程中我已经完成了:

testClass *t = [[testClass alloc]init];
UIAccelerometer *a = [UIAccelerometer sharedAccelerometer];
[a setDelegate: t];

并在dealloc中释放t。

它有效,但这是写一般代表的正确方法吗?

2 个答案:

答案 0 :(得分:0)

一般来说,这是正确的,但在决定委托retainassign时要小心,以避免循环引用。我之前一直都是这样。这是一篇很好的文章,谈论它和一些细微差别:Why are Objective-C delegates usually given the property assign instead of retain?

答案 1 :(得分:0)

这是编写委托的一种方法。一种更简单的方法是在您创建testClass实例的类中实现委托方法,并将UIAccelerometer委托属性设置为self

另外,只是一致性说明,类名以大写字母开头是合适的,因此您的类应该被称为TestClass


此外,在取消分配委托对象时,您需要将UIAccelerometer委托属性设置为nil