1

起動時にアプリがクラッシュします。道を教えてください。とても有難い。

- (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];
}
4

2 に答える 2

4

plist のキーは文字列でなければなりません。ここに数字があります。

プロパティ リストのドキュメントを参照してください:「NSDictionary および CFDictionary オブジェクトではキーを任意の型のオブジェクトにすることができますが、キーが文字列オブジェクトでない場合、コレクションはプロパティ リスト オブジェクトではありません」。

于 2013-03-16T16:57:03.480 に答える
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];
于 2013-03-16T16:57:17.303 に答える