3

値を含む配列を保存しようとしていCGRectます。plists がCGRect型と互換性がないことはわかっているので、コードを少し変更し、現在NSNumberは rect 値を格納する代わりに格納しています。rect 値を x、y、幅、高さの 4 つの値に分割しています。

[myArray1 addObject:[NSNumber numberWithFloat:CGRectGetMinX(rawRect)]];
[myArray1 addObject:[NSNumber numberWithFloat:CGRectGetMinY(rawRect)]];
[myArray1 addObject:[NSNumber numberWithFloat:CGRectGetWidth(rawRect)]];
[myArray1 addObject:[NSNumber numberWithFloat:CGRectGetHeight(rawRect)]];

現在は smyArray1のみが含まれておりNSNumber、これらの値を plist に保存しようとしていますが、値を読み込めません。コードに何か問題がある場合、誰かが私を修正できますか?

前もって感謝します; 貴重な情報お待ちしております。

4

2 に答える 2

18
CGRect rect  = CGRectMake(0, 0, 320.0f, 480.0f);
//you need to translate the rect into a compatible "Plist" object such as NSString
//luckily, there is a method for that

[rectArray addObject:NSStringFromRect(rect)];

//save into a plist


...

この値の取得時

CGRect rect = CGRectFromString([rectArray objectAtIndex:0]);
于 2011-05-04T16:59:17.267 に答える
0

あなたが提示したコードは正しいようです。あなたの問題は他の場所にある可能性があります。ロード コードまたは保存コードの別の場所にある可能性がありますが、他に何も投稿していないため、問題がどこにあるのかわかりません。

簡単にしたい場合は johnoodles アプローチを試すことができますが、それはより大きな plist ファイルを作成する可能性が高く、保存と取得にも時間がかかります。格納する四角形の数が比較的少ない場合は、おそらく問題にはなりませんが、格納する領域が多い場合は、実際の数値として格納すると遅延が大幅に短縮されることに気付く場合があります。

于 2011-05-04T17:25:00.340 に答える