当一个函数返回一个对象是一个副本吗?

时间:2015-04-07 18:40:53

标签: objective-c

假设我有以下声明

CGRect frame =  CGRectMake(0,0,200,150) ; 

我想知道在这种情况下是否制作了副本。我刚开始使用objectiveC,我只知道何时以及如何使用指针实现方法

进行复制
-(id)copyWithZone:(NSZone *)zone;

1 个答案:

答案 0 :(得分:1)

是的,但不一定是你可能会想到的原因。

CGRect是一个C结构,而不是一个Objective-C对象。 CGRectMake返回 new CGRect,因为它没有返回指针(它返回一个值),它没有指向内存中的现有结构,你可以安全地假设它是一个“副本”,或一个独特的,离散的结构。