将CGRect存储到plist时出现问题

aja*_*jay 3 cocoa-touch objective-c plist ios cgrect

我试图保存包含CGRect值的数组.我知道plist与CGRect类型不兼容,所以我稍微修改了我的代码,现在我存储NSNumber而不是存储rect值 - 我将rect值分成四个值:x,y,width,height.

[myArray1 addObject:[NSNumber numberWithFloat:CGRectGetMinX(rawRect)]];
[myArray1 addObject:[NSNumber numberWithFloat:CGRectGetMinY(rawRect)]];
[myArray1 addObject:[NSNumber numberWithFloat:CGRectGetWidth(rawRect)]];
[myArray1 addObject:[NSNumber numberWithFloat:CGRectGetHeight(rawRect)]];
Run Code Online (Sandbox Code Playgroud)

现在myArray1只包含NSNumbers,我试图将这些值存储到plist中,但我无法将值加载回来.如果我的代码出错了,有人可以纠正我吗?

提前致谢; 我在等你的宝贵信息.

joh*_*les 17

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


...
Run Code Online (Sandbox Code Playgroud)

检索此值

CGRect rect = CGRectFromString([rectArray objectAtIndex:0]);
Run Code Online (Sandbox Code Playgroud)