2013-06-29 68 views
1

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

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

和Xcode是说 “无法与诠释CGPoint关联”。因此,如何通过按“保存”在屏幕上保存球(UIImageView)的位置,然后通过按下“load”通过NSUserDefaults加载保存的位置?我以前曾经使用过NSUserDefaults,但只能使用UISegmentedController。谢谢!

回答

1

您正试图分配一个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"]; 
+0

这个答案是正确的,但只是以获取更多信息,您可以访问每个通过做int指向一个整数int defaultBallLocationXCoord = ball.center.x(或ball.center.y) – JustAnotherCoder

+0

谢谢,但我会如何加载? – Chase

+0

@Chase你读过'NSUserDefaults'的API文档吗?你之前写过你曾经用过'NSUserDefaults',所以你应该知道如何从中加载一些东西。如果不是,那么这对你来说是一个好习惯。 –

3

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

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

你是一个天才!非常感谢你!!! – Chase

+0

@Chase u'r welcome :) – Kjuly