2012-08-15 51 views
0

我已經創建了一個PHP文件,它打印出一個工作的plist的所有源代碼,並且我可以用這種方法成功地從數據庫檢索數據到我的應用程序。從URL的內容創建Plist

但是,我不希望應用程序總是在線獲取數據庫,所以我希望用戶能夠指定他/她想要更新plist(通過按「更新數據庫」按鈕) 。

我的代碼來獲取的plist:

NSURL *url_ = [[NSURL alloc] initWithString:@"http://localhost/~user/plist.php"]; 
NSArray *data = [NSArray arrayWithContentsOfURL:url_]; 

這個偉大的工程,但用戶不應該必須在線使用的數據庫...

我想要做的是用一個地方plist代替,這很簡單。

每當按鈕被點擊「更新數據庫」我想從URL下載新的plist並替換本地保存的一個。

希望你明白我的意思:)

在此先感謝 麥克

回答

2

你可以做什麼來保存你的文件是使用方法writeToFile:atomically返回s BOOL告訴你文件是否被保存。

這裏去一個代碼示例:

NSArray* a = [NSArray new]; 
BOOL sucess = [a writeToFile:@"my.plist" atomically:YES]; 
if (!sucess) { 
    NSLog(@"Ups, not saved"); 
} 

後,從你的文檔路徑

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); //1 Create a list of paths. 
NSString *documentsDirectory = [paths objectAtIndex:0]; 
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"my.plist"]; 

NSFileManager *fileManager = [NSFileManager defaultManager]; 

if ([fileManager fileExistsAtPath: path]) { 
    NSarray* a = [NSArray arrayWithContentsOfFile:path]; 
    } 
} 

它可能會解決你的問題,你可以加載你的文件!

+0

謝謝,幫忙! :d – Michael 2012-08-15 16:16:53

1

不要這個寫你的plist數據,這樣的文檔目錄:

[arrImages writeToFile:@"yourDocDirPathWithPlist" atomically:YES]; 

現在的plist創建並存儲在文件目錄