Objective c 内存管理-我应该通过一些命令取消并释放对象吗?

Objective c 内存管理-我应该通过一些命令取消并释放对象吗?,objective-c,ios,memory-management,Objective C,Ios,Memory Management,例如,我创建了一个数组并将一些自定义类放入其中。我该不该以某种命令释放他们?如果我在数组中放入背景ASIHTTPRequests,如果我首先释放数组,是否会出现泄漏?弧线是一样的吗?谢谢您的回答。当您将对象添加到NSArray时,它会自动保留,然后当您释放阵列时,会向该阵列中的所有对象发送一个释放信号。因此: -(void)someMethod{ NSString *newString = [[NSString alloc] initWithString:@"Hello"]; //new

例如,我创建了一个数组并将一些自定义类放入其中。我该不该以某种命令释放他们?如果我在数组中放入背景ASIHTTPRequests,如果我首先释放数组,是否会出现泄漏?弧线是一样的吗?谢谢您的回答。

当您将对象添加到
NSArray
时,它会自动保留,然后当您
释放
阵列时,会向该阵列中的所有对象发送一个
释放
信号。因此:

-(void)someMethod{

   NSString *newString = [[NSString alloc] initWithString:@"Hello"]; //newString retainCount = 1
   NSArray *newArray = [[NSArray alloc] initWithObjects: newString]; //newString retainCount = 2 

   [newArray release];  //newString retainCount = 1
   [newString release];  //newString retainCount = 0

} 
同:

-(void)someMethod{

   NSString *newString = [[NSString alloc] initWithString:@"Hello"]; //newString retainCount = 1
   NSArray *newArray = [[NSArray alloc] initWithObjects: newString]; //newString retainCount = 2 

   [newString release];  //newString retainCount = 1
   [newArray release];  //newString retainCount = 0

} 

事实上,当您想创建一个对象数组而不考虑对这些对象的单独引用时,第二个代码是一种非常常见的做法。

谢谢您的提醒,我试过了,但没有找到。谢谢@whitelionV。我想我不需要在ARC中释放它们,但我仍然需要在viewDidUnload中不释放这些属性?如果您使用的是自动引用计数,那么iOS负责您的内存。将nil分配给未使用的指针是一个很好的实践,您应该这样做,但它“不应该”在“内存方面”产生影响。。。这可能会使ARC的工作更容易,但我不确定