在循环内修改 NSMutableArray
我有一个充满 Task
对象的 NSMutableArray
。我希望能够删除那些 completed
属性设置为 YES
的任务。
NSMutableArray *allTasks = (NSMutableArray *)[[TaskStore defaultStore] allTasks];
NSMutableArray *completedTasks;
for (Task *task in allTasks) {
if ([task completed]) {
[completedTasks addObject:task];
}
}
[allTasks removeObjectsInArray:completedTasks];
在调试时,我注意到 completedTasks
数组始终为空。这是为什么呢?
I have an NSMutableArray
filled with Task
objects. I want to be able to delete those whose completed
property are set to YES
NSMutableArray *allTasks = (NSMutableArray *)[[TaskStore defaultStore] allTasks];
NSMutableArray *completedTasks;
for (Task *task in allTasks) {
if ([task completed]) {
[completedTasks addObject:task];
}
}
[allTasks removeObjectsInArray:completedTasks];
While debugging I noticed that the completedTasks
array is always empty. Why is this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
您忘记初始化已完成的任务:
You forgot to initialize the completedTasks :
您尚未初始化已完成的任务。你需要添加这个:
You haven't initialized completedTasks. You need to add this:
您必须在使用数组之前对其进行初始化,初始化实际上会创建您的数组对象 -
为此,请添加此行以创建一个自动释放的数组(这意味着您不必释放它)
或者
但是您必须通过以下方式释放它:当您不使用它时(除非您使用 ARC),请您自己
[completedTasks release]
。这将创建您的数组对象。
沙尼
You must initialize the array before you can use it, the initializing actually creates your array object -
To do this add This Line to create an autoreleased array (which means you dont have to release it)
Or
But then you will have to release it by yourself
[completedTasks release]
when you are not using it any moere (unless you are using ARC).This will create your array object.
Shani
来自 NSMutableArray 文档:
您可以尝试:
from NSMutableArray documentation :
You can try :