NSUserDefaults – 保存UIImageView位置

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

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

和Xcode说“不能将CGPoint与int关联”。

那么,怎样才能通过按“保存”在屏幕上保存球(UIImageView)的位置,然后通过NSUserDefaults按“加载”加载保存的位置? 我以前曾经使用过NSUserDefaults,但只能使用UISegmentedController。 谢谢!

另一个选项,你可以把它存储为string:

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

你正试图用一个CGPoint结构来分配一个int ,这是不可能的。

要保存到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"];