你需要发布NSData吗?

时间:2011-04-18 07:02:37

标签: iphone release nsdata

-(void) func1: (NSData*) somedata
{
    //Processing somedata ....

    [somedata release]; //is it necessay? 
}

3 个答案:

答案 0 :(得分:2)

你不应该在你的方法中释放somedata

NSData *somedata = [[NSData alloc] init];
func1(somedata);
[somedata release];

假设:

  • func1在同一个线程上运行

答案 1 :(得分:2)

在这种情况下,不,你不应该释放你的对象。你不是“老板”。根据经验,只有在以下情况下才需要释放对象:

  • 您是通过[MyClass alloc]分配的,如[[MyClass alloc] init][[MyClass alloc] initWithFoo:foo bar:baz]
  • 您可以通过[someObject copy][someObject mutableCopy]获得副本。
  • 您之前保留过它。

答案 2 :(得分:1)

你应该考虑释放它如果你在这种情况下保留它。但我不确定,因为您的问题并不能说明是否需要发布。但一般来说,如果你拥有它,你将release个对象。