我将数据存储到NSMutableArray
中问题在于ABRecord有时不完整。例如,我希望用户拥有以下数据
First Name
Last Name
Street Address
City
State
Zip
Country
如果City,State,Zip丢失,那么我崩溃了。那么有更好的方法来检查吗?
这是我的代码
- (NSString *)getCityStateAndZip
{
NSString* temp = [addressArray objectAtIndex:0];
if (temp != nil) {
NSArray *listItems = [temp componentsSeparatedByString:@","];
NSMutableArray* tempArray = [NSMutableArray arrayWithArray:listItems];
[tempArray removeObjectAtIndex:0];
if ([tempArray count] > 2) {
[tempArray removeObjectAtIndex:3];
}
temp = @"";
for (NSString* element in tempArray) {
if (element != nil) {
//NSLog(@"%@", element);
if ([element isEqualToString:@"(null)"]) {
NSLog(@"record has a null entry");
}
temp = [temp stringByAppendingString:element];
temp = [temp stringByAppendingString:@", "];
}
}
if ([temp length] > 1) {
temp = [temp substringToIndex:[temp length] -2];
}
}
return temp;
}
在我们开始删除元素之前,这是一个'po tempArray'。
(gdb) po tempArray
<__NSArrayM 0x5a6ee20>(
1 Main Street ,
Trenton ,
NJ ,
08601 ,
United States
)
由于
如果你有更好的处理方式,我很想知道。
崩溃应用程序的行是
[tempArray removeObjectAtIndex:3];
我知道它崩溃的原因。如果缺少city,state,zip,则如果数组小于4,则无法删除该项。
答案 0 :(得分:2)
当您搜索更好的更永久的解决方案时,除非我在代码中遗漏了某些内容,否则这至少会阻止崩溃?
if ([tempArray count] > 3) {
[tempArray removeObjectAtIndex:3];
}