iPhone开发人员-关于自动释放的问题,以及我';我所做的一切都是安全的
我的应用程序的方法中包含以下代码:iPhone开发人员-关于自动释放的问题,以及我';我所做的一切都是安全的,iphone,objective-c,autorelease,nsautoreleasepool,Iphone,Objective C,Autorelease,Nsautoreleasepool,我的应用程序的方法中包含以下代码: NSArray *array = [NSArray arrayWithObjects:@"1", @"2", @"3", nil]; [someObject someMethodThatTakesAnArray:array]; 我知道arrayWithObjects方法返回一个自动释放的数组。这是否意味着我应该在制作后直接保留它?在我将数组传递给某个使用数组的方法之前,是否保证不会耗尽自动释放池?当它进入方法时呢?如果我从不保留它,那么当我在使用数组的So
NSArray *array = [NSArray arrayWithObjects:@"1", @"2", @"3", nil];
[someObject someMethodThatTakesAnArray:array];
我知道arrayWithObjects方法返回一个自动释放的数组。这是否意味着我应该在制作后直接保留它?在我将数组传递给某个使用数组的方法之前,是否保证不会耗尽自动释放池?当它进入方法时呢?如果我从不保留它,那么当我在使用数组的SomeMethods中使用它时,数组可能会消失,不是吗?在方法返回之前,自动释放池没有机会被耗尽。您在这里所做的很好,如果您对该数组没有其他需要,只需要将它传递给
-在方法返回之前使用一个数组的某个方法:
,则自动释放池没有机会被耗尽。如果您不需要将此数组传递给-somemethodthatakesanarray:
自动释放池直到它所服务的线程的事件循环的下一次传递时才会被耗尽,那么您在这里所做的一切都很好。只要使用当前方法,就不会发生这种情况。所以,是的,数组对于使用数组的方法是安全的;你不必担心
活动管理:
内存管理:自动释放池直到它所服务的线程的事件循环的下一次传递时才会被耗尽。只要使用当前方法,就不会发生这种情况。所以,是的,数组对于使用数组的方法是安全的;你不必担心 活动管理:
内存管理:好的,很酷,谢谢。你知道我可以利用哪些好的资源来进一步了解事件循环及其工作原理吗?@Tim:又添加了一个链接供你阅读。@Tim别忘了接受对你有帮助的答案-它可以帮助其他人知道哪些答案是好的,让人们将来更有可能回答你的问题,让社区保持冷静,谢谢。你知道我可以利用哪些好的资源来进一步了解事件循环及其工作原理吗?@Tim:又添加了一个链接供你阅读。@Tim别忘了接受对你有帮助的答案-它可以帮助其他人知道哪些答案是好的,让人们在将来更有可能回答您的问题,并使社区不断发展