Tag: 代表

为什么Objective-C的代表通常给予属性赋值而不是保留?

我正在浏览斯科特·史蒂文森(Scott Stevenson)维护的精彩博客,我正在尝试理解一个基本的Objective-C概念,即为代理赋予“赋值”属性和“保留”属性。 注意,这两者在垃圾收集环境中是相同的。 我主要关心的是基于非GC的环境(例如:iPhone)。 直接从斯科特的博客: “assign关键字将生成一个setter,它将值直接赋值给实例variables,而不是复制或保留它,这对于像NSInteger和CGFloat这样的原始types,或者不是直接拥有的对象,比如委托,是最好的。 这是什么意思,你不直接拥有委​​托对象? 我通常会保留我的代表,因为如果我不想让他们走进深渊,保留会照顾到我的。 我通常将UITableViewController从其各自的dataSource和委托中抽象出来。 我也保留那个特定的对象。 我想确保它永远不会消失,所以我的UITableView始终有其委托。 有人可以进一步解释我在哪里/为什么是错的,所以我可以理解Objective-C 2.0编程中使用assign属性而不是retain的常用范例吗? 谢谢!

编译器不明确的调用错误 – 具有Func <>或Action的匿名方法和方法组

我有一个场景,我想使用方法组语法而不是匿名方法(或lambda语法)来调用函数。 该函数有两个重载,一个接受一个Action ,另一个接受一个Func<string> 。 我可以愉快地使用匿名方法(或lambda语法)调用这两个重载,但是如果使用方法组语法,则会得到Ambiguous调用的编译器错误。 我可以通过显式转换为Action或Func<string> ,但不要认为这是必要的。 任何人都可以解释为什么明确的演员应该是必需的。 下面的代码示例。 class Program { static void Main(string[] args) { ClassWithSimpleMethods classWithSimpleMethods = new ClassWithSimpleMethods(); ClassWithDelegateMethods classWithDelegateMethods = new ClassWithDelegateMethods(); // These both compile (lambda syntax) classWithDelegateMethods.Method(() => classWithSimpleMethods.GetString()); classWithDelegateMethods.Method(() => classWithSimpleMethods.DoNothing()); // These also compile (method group with explicit cast) classWithDelegateMethods.Method((Func<string>)classWithSimpleMethods.GetString); classWithDelegateMethods.Method((Action)classWithSimpleMethods.DoNothing); // These both error with […]

代表如何在Objective-C中工作?

有没有人知道我在哪里可以find一个很好的解释/教程什么和应用程序委托如何在objective-C ? 我所拥有的这两本书并没有充分详细地介绍给delegates ,也没有很好地解释它们,让我真正理解它们的力量和function。

如何设置一个简单的委托来在两个视图控制器之间进行通信?

我有两个UITableViewControllers并需要使用委托将值从子视图控制器传递给父级。 我知道代表是什么,只是想看看一个简单的例子。 谢谢

代表们在迅速?

如何做一个委托,即NSUserNotificationCenterDelegate在NSUserNotificationCenterDelegate ?