2013-06-29 81 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