假设我有以下声明
CGRect frame = CGRectMake(0,0,200,150) ;
我想知道在这种情况下是否制作了副本。我刚开始使用objectiveC,我只知道何时以及如何使用指针实现方法
进行复制-(id)copyWithZone:(NSZone *)zone;
答案 0 :(得分:1)
是的,但不一定是你可能会想到的原因。
CGRect
是一个C结构,而不是一个Objective-C对象。 CGRectMake
返回 new CGRect
,因为它没有返回指针(它返回一个值),它没有指向内存中的现有结构,你可以安全地假设它是一个“副本”,或一个独特的,离散的结构。