2010-07-14 22 views
1

我想添加一個這個蘋果示例[AccelerometerGraph]能夠將數據存儲在文件中,直到應用程序未關閉。沒有鎖定問題和其他實時數據收集問題。登錄到文件加速度計數據

任何想法,樣本或一個半新手可以玩?

回答

2

,你可以當應用程序被關閉該數組寫入一個文件中的加速度計數據登錄到一個NSMutableArray,因爲它擊中,然後:

[array writeToFile:DataPath atomically:YES]; 

只是想確保你不要儲存的每一個條目或者它可能會非常快速地變大。做一些檢查加速對象中的時間戳

- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration 

根據您要運行它的時間長短,每隔幾秒鐘記錄一次。 (這種方法可能不是明智的,可以長時間運行而不節制它,或者做一些其他的陣列操作,這樣整個陣列就不會在應用程序的整個生命週期內保存在內存中)

快速的方式閱讀你寫的文件。

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *documentsDirectory = [paths objectAtIndex:0]; 
    NSString *DataPath = [documentsDirectory stringByAppendingPathComponent:@"SOMEFILENAME"]; 
    NSMutableArray *array = [[NSMutableArray alloc] initWithContentsOfFile:DataPath]; 
if([array count]<1){ 
//do something with data 
} 
+0

我很想知道如何找回事後文件... – nornagon 2011-03-22 03:57:50

+0

加入到讀取寫入的文件數據的方式 – AtomRiot 2011-03-23 15:14:13

+0

(我假設你的意思是'如果([數組數] > 0)':))謝謝! – nornagon 2011-03-23 23:29:54

0

如果您只是想查看數據出來,您可以將其記錄到控制檯的簡單方法。

在MainViewController.m,在 - (空)加速度計:方法只是增加

[filtered addX:filter.x y:filter.y z:filter.z]; // this line is already there 
NSLog(@"%f, %f, %f", acceleration.x, acceleration.y, acceleration.z); 

然後,當你在設備上運行它,打開調試器控制檯,它會流出來爲你的數據。以下是我的了:

2010-07-13 22:15:45.187 AccelerometerGraph[11241:307] 0.072449, -0.018112, -1.068619 
2010-07-13 22:15:45.203 AccelerometerGraph[11241:307] 0.072449, -0.018112, -1.068619 
2010-07-13 22:15:45.219 AccelerometerGraph[11241:307] 0.072449, 0.000000, -1.050507 
2010-07-13 22:15:45.236 AccelerometerGraph[11241:307] 0.054337, -0.018112, -1.032394 
2010-07-13 22:15:45.254 AccelerometerGraph[11241:307] 0.054337, -0.018112, -1.014282 
2010-07-13 22:15:45.272 AccelerometerGraph[11241:307] 0.072449, -0.018112, -1.050507 
2010-07-13 22:15:45.287 AccelerometerGraph[11241:307] 0.072449, -0.018112, -1.068619 
+0

感謝您的回答,但正如我指出的那樣,我一直在尋找一種方法來存儲它,而不是僅僅在控制檯中顯示數據。 – amok 2010-07-14 05:49:16

+0

是的,另一個人已經發布瞭如何通過文件來完成,所以我只是添加另一種方式,以防止你想看到它。我的例子還顯示了在哪裏添加日誌記錄(文件或流)。 – christophercotton 2010-07-14 15:54:29