【发布时间】:2014-01-03 05:15:22
【问题描述】:
我有三个类,即 DepartmentViewController、DepartmentRequest、Department。这就像我从 DepartmentViewcontroller 发出部门请求,并基于响应即时操作响应并在 DepartmentRequest 类中添加 NSmutableArray *responseArray。该数组仅包含 Department 对象。我希望 DepartmentViewController 中的这个 responseArray 用于搜索和重新加载 tableview。所以我通过委托将此数组传递给 DepartmentViewController 并将 responseArray 分配给 localArray。现在我根据这两个数组进行了搜索,但是如果我使用 removeallobject 删除任何一个数组。它也在其他数组中删除对象。
if(searchString.length>0)
{
[localArray removeAllObjects];
for (int i =0 ; i < [departmentRequest.responseArray count]; i++) {
Department *dept = [departmentRequest.responseArray objectAtIndex:i];
if (([dept.departmentName rangeOfString:searchString options:(NSCaseInsensitiveSearch|NSDiacriticInsensitiveSearch)].location != NSNotFound)
)
{
[localArray addObject:dept];
}
else{
NSLog(@"deptname %@",dept.departmentName);
}
}
[departmentTableView reloadData];
如果我删除 localArray 中的对象,它会删除 departmentReqeust.responseArray 和 localArray 中的对象
【问题讨论】:
-
您是使用 localArray = responseArray 直接分配吗?
-
听起来你认为你有两个数组,实际上只有一个。您可能传递的是参考,而不是克隆。您提供的代码不足以确定是否是这种情况。
标签: ios objective-c arrays nsmutablearray