NSUserDefaults的 - 保存位置的UIImageView(NSUserDefaults

2019-10-18 07:45发布

在我的应用程序,我有一个UIImageView和一个UIButton。 该的UIImageView有UIPanGestureRecognizer,并且可以在屏幕上拖动。 我已经写了:

int defaultBallLocation = ball.center; 在我- (IBAction)saveButton

和Xcode是说“无法与诠释CGPoint关联”。

所以,我怎样才能节省屏幕上的球(UIImageView的)位置按“保存”,然后通过按下NSUserDefaults的“负荷”加载保存的位置? 我以前跟工作NSUserDefaults的,但只能用UISegmentedController。 谢谢!

Answer 1:

另一种选择,可以将其存储为字符串:

NSUserDefaults * userDefaults = [NSUserDefaults standardUserDefaults];
// Set
[userDefaults setObject:NSStringFromCGPoint(yourPoint) forKey:@"pointPosition"];
// Save
[userDefaults synchronize];
// Get
CGPoint thePoint = CGPointFromString([userDefaults objectForKey:@"pointPosition"]);


Answer 2:

您试图分配intCGPoint结构是不可能的。

将其保存到NSUserDefaults你可以这样做:

CGFloat x = ball.center.x;
CGFloat y = ball.center.y;

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setFloat:x forKey:@"x"];
[defaults setFloat:y forKey:@"y"];


文章来源: NSUserDefaults - Saving UIImageView Position