PersonObjective C では、たとえば、多くのフィールドfirstName、lastName、phoneNumber、... などを持つオブジェクトがありますaddress。cityこれらのフィールド タイプはNSStringであり、これらのいずれかである可能性がありますnil。
ここで、フィールド値を別のフィールドに連結したいと思いますNSString:
Person *p = ...
NSMutableString *s = [[NSMutableString alloc] init];
for (NSString *field in @[p.firstName, p.lastName, p.phoneNumber,
p.adress, p.city, ....more fields...]) {
if ([field length] > 0) {
[s appendFormat:@"%@\n", field];
}
}
問題は、フィールドの 1 つが であるたびに、このコードがクラッシュすることですnil。例外があります:
[__NSPlaceholderArray initWithObjects:count:]: attempt to insert nil object
from objects[0]'
ループnil内の値のケースを単純に処理するにはどうすればよいですか?for