2017-02-18 12 views
0

Когда мое приложение выполнить следующее тогда я получаю: terminating with uncaught exception of type NSExceptionНагрузочные с неперехваченным исключением типа NSException: попытка вставить ноль объект из объектов [1]

NSDictionary *temporary = nil; 
if(eventName != nil) { 
    NSLog(@"nil found -----> "); 
    temporary = @{@"eventname": @"OK", 
           @"type": dictionary[@"type"], 
           @"from" : dictionary[@"from"], 
           @"to" : dictionary[@"to"]}; 
} 
else { 
    NSLog(@"OK no nil found -----> "); 
    temporary = @{@"eventname": @"?????", 
           @"type": dictionary[@"type"], 
           @"from" : dictionary[@"from"], 
           @"to" : dictionary[@"to"]}; 
} 

ОШИБКА:

2017-02-18 13:49:26.411903 ios[3645:1360486] [DYMTLInitPlatform] platform initialization successful 
2017-02-18 13:49:26.543678 ios[3645:1360413] Metal GPU Frame Capture Enabled 
2017-02-18 13:49:26.544129 ios[3645:1360413] Metal API Validation Enabled 
2017-02-18 13:49:26.689675 ios[3645:1360413] [MC] System group container for systemgroup.com.apple.configurationprofiles path is /private/var/containers/Shared/SystemGroup/systemgroup.com.apple.configurationprofiles 
2017-02-18 13:49:26.691524 ios[3645:1360413] [MC] Reading from public effective user settings. 
2017-02-18 13:49:26.998874 ios[3645:1360413] eventName = servers, type = (null), from = (null), to = (null) 
2017-02-18 13:49:26.998919 ios[3645:1360413] nil found -----> 
2017-02-18 13:49:26.999137 ios[3645:1360413] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[__NSPlaceholderDictionary initWithObjects:forKeys:count:]: attempt to insert nil object from objects[1]' 
*** First throw call stack: 
(0x18c9b51b8 0x18b3ec55c 0x18c898eac 0x18c898d1c 0x1000fc2b8 0x1000f92cc 0x1000e58e0 0x18d4c9048 0x18c962b5c 0x18c9624a4 0x18c9600a4 0x18c88e2b8 0x18e342198 0x1928d57fc 0x1928d0534 0x1000a1f48 0x18b8715b8) 
libc++abi.dylib: terminating with uncaught exception of type NSException 
(lldb) 

ответ

1

-[__NSPlaceholderDictionary initWithObjects:forKeys:count:]: attempt to insert nil object from objects[1]'

Ваша проблема:

Вы пытаетесь чтобы вставить объект nil в ваш NSDictionarytemporary.

NSDictionary сбой при попытке вставить nil объектов. Вы можете, однако, вставить NSNull.

Ваше решение:

ли, как это для каждого ключа вы не уверены в, чтобы сделать его безопасным от сбоев (Если его строка, в противном случае сделать эквивалентные проверки):

id fromObject = fromString.length ? fromString : [NSNull null]; 

и просто вставьте fromObject в ваш NSDictionary, даже если это nil, вы не потерпите краха.

@"from" : fromObject, 
1

Сообщение об ошибке довольно ясно:

attempt to insert nil object from objects[1]

Все значения в словаре не должны быть nil, но, видимо, один из значений ключей type, from или toявляется ноль, согласно на вывод печати даже все три (eventName = servers, type = (null), from = (null), to = (null)).

 Смежные вопросы

  • Нет связанных вопросов^_^