哪些类可以复制?

时间:2012-01-18 11:27:08

标签: objective-c cocoa-touch cocoa

在属性声明中,可以发送“copy”属性。您不能对所有对象使用复制,但可以使用复制属性?

2 个答案:

答案 0 :(得分:6)

-copy不是属性,它是一种方法。将-copy发送到实现NSCopying协议的任何对象都可以。

如果您有属性,如果属性的类型是实现copy的类,您可以(应该?)使用NSCopying属性。即任何可以发送-copy的课程。

答案 1 :(得分:0)

您无法复制。复制是一种实例方法,它使克隆实例脱离另一个实例。为了使实例可以复制,它需要实现NSCopying协议。一些NSFundation / Cocoa类实现它,有些则不实现它。对于那些不需要的人,你必须自己使用类别编写实现。但是要小心,对于UI类来说这可能非常棘手。