Objective c 从目标c中的可变数组中删除空对象
我有一个可变的复选框数组Objective c 从目标c中的可变数组中删除空对象,objective-c,nsmutablearray,Objective C,Nsmutablearray,我有一个可变的复选框数组 NSMutableArray *arrayOfCheckedBox = [NSMutableArray arrayWithObjects:namePropertyString, lastNamePropertyString, companyPropertyString, workEmailPropertyString, personalEmailPropertyString, workPhonePropertyString, cellNumberPropertyStri
NSMutableArray *arrayOfCheckedBox = [NSMutableArray arrayWithObjects:namePropertyString, lastNamePropertyString, companyPropertyString, workEmailPropertyString, personalEmailPropertyString, workPhonePropertyString, cellNumberPropertyString, nil];
[arrayOfCheckedBox removeObjectIdenticalTo:[NSNull null]]; //not working
NSLog(@"array of check box = %@", arrayOfCheckedBox);
若我单击索引0、1和4处的复选框,它将只收集索引0和1处的对象,而不会检测到索引4
在arrayOfCheckedBox中获取选定索引之前,我在日志中获取该索引的值。在这种情况下如何获取选中值?我建议将复选框值存储在布尔数组中。 首先将它们包装在NSNumbers中,然后展开它们以检索它们 包装到仓库
[NSNumber numberWithBool:YES]]
展开取回
[[your_array objectAtIndex:index] boolValue]
For null值似乎是字符串文字@“”,而不是NSNull。因此,请使用以下方法删除null对象:
NSLog(@"%d", [arrayOfCheckedBox count]);
NSString *nullString = @"<null>";
[arrayOfCheckedBox removeObject:nullString];
NSLog(@"%d", [arrayOfCheckedBox count]);
NSLog(@“%d”,[arrayOfCheckedBox count]);
NSString*nullString=@;
[arrayOfCheckedBox removeObject:nullString];
NSLog(@“%d”,[arrayOfCheckedBox计数]);
问题是您遇到了一个nil
值,因此arrayWithObjects:
方法认为您位于对象列表的末尾
类似这样的方法会奏效:
NSMutableArray *arrayOfCheckedBox = [NSMutableArray arrayWithCapacity:7];
if (namePropertyString)
[arrayOfCheckedBox addObject:namePropertyString];
if (lastNamePropertyString)
[arrayOfCheckedBox addObject:lastNamePropertyString];
尝试将
[NSNull null]
替换为nil,您是否检查过我在[NSNull]之前尝试过nil。没有wokr@OptimusPrime:查看我的答案,它可能会解决您的问题。NSIndexSet
可能对您的情况更有用。您可以将它们包装在一个NSNumber中,[NSNumber numberwhithbool:YES]]
,然后使用[[your_array objectAtIndex:index]boolValue]打开它们代码>“”仅出现在某些打印或格式化路径中。它在任何其他上下文中都不等同于nil或[NSNull]。