Я сохраняю данные в NSMutableArray
Проблема в том, что ABRecord иногда бывает неполным. Например, я ожидаю, что у пользователя будут следующие данные
First Name
Last Name
Street Address
City
State
Zip
Country
Если город, штат, почтовый индекс отсутствуют, то я потерплю крах. Так есть ли лучший способ проверить?
Вот мой код
- (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];
Я знаю, почему он падает. Если город, штат, почтовый индекс отсутствуют, то он не может удалить элемент, если массив меньше 4.