0
Whatup. 여기에 NSMutableDictionary
을 사용하려고합니다. 사전 설정을하지 않으면 일부 기본값으로 사전을 초기화하는 checkNull
메서드를 사용합니다. 그러나 iOS 시뮬레이터는 for
-loop의 첫 번째 충돌에서 충돌합니다.동적으로 NSDisctionary 초기화
오류 메시지 :
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFNumber mutableCopyWithZone:]: unrecognized selector sent to instance
코드 :
+ (void)checkNull {
if ([[self defaults] valueForKey:@"channels"] == nil) {
NSNumber *defaultValue = [NSNumber numberWithBool:YES];
NSMutableDictionary *channels = [[NSMutableDictionary alloc] init];
for (NSString *channel in [self channelsList]) {
[channels setObject:[defaultValue mutableCopy] forKey:channel];
}
[[self defaults] setValue:channels forKey:@"channels"];
}
}
[self defaults]
반환 [NSUserDefaults standardDefaults]
반면, [self channelsList]
반환 약 10 NSString
객체와의 NSArray
.
어디로 잘못 가고 있습니까? 미리 감사드립니다.
그랬습니다. 'mutableCopy'라는 아이디어를 오해 한 것 같습니다. 고맙습니다. –