2013-03-16 2 views
1

시작할 때 내 앱이 중단됩니다. 제발 방법을 가르쳐주세요. 매우 감사.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 키를 사용하고 있습니다. 아래의 코드는 충돌하지 않습니다.

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]; 
관련 문제