2013-03-16 2 views
1

My app crash on start. Пожалуйста, укажи мне путь. Очень признателен.iOS: registerDefaults вызывает сбой

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions: (NSDictionary *)launchOptions 
{ 
NSDictionary *temp = @{@(0): NSStringFromCGPoint(CGPointZero), 
         @(1): NSStringFromCGPoint(CGPointZero), 
         @(2): NSStringFromCGPoint(CGPointZero), 
         @(3): NSStringFromCGPoint(CGPointZero), 
         }; 

// Pro 
NSDictionary *defaults = @{ // ... other PrefKeys 

          // No crash if I comment out this line 
          GMListVCOffsetsPrefKey:temp, 
          }; 

[[NSUserDefaults standardUserDefaults] registerDefaults: defaults]; 
} 
+0

Какая ошибка вы получаете? –

ответ

4

Ключи в plist должны быть строками. Здесь у вас есть номера.

См. Property list documentation: «И хотя объекты NSDictionary и CFDictionary позволяют своим ключам быть объектами любого типа, если ключи не являются строковыми объектами, коллекции не являются объектами списка свойств».

2

Вы используете ключи, отличные от NSString, для массива temp, который вызывает сбой. Код ниже не падает.

NSDictionary *temp = @{@"0": NSStringFromCGPoint(CGPointZero), 
         @"1": NSStringFromCGPoint(CGPointZero), 
         @"2": NSStringFromCGPoint(CGPointZero), 
         @"3": NSStringFromCGPoint(CGPointZero), 
         }; 

// Pro 
NSDictionary *defaults = @{ // ... other PrefKeys 

          // No crash if I comment out this line 
          GMListVCOffsetsPrefKey:temp, 
          }; 

[[NSUserDefaults standardUserDefaults] registerDefaults: defaults]; 
Смежные вопросы