Person
Objective 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