2011-12-12 36 views
0

我的應用程序的工作,其中第一屏的ViewDidAppear有檢查的檢查首先認爲,如果我在第二種觀點通話用,如果plist中存在

NSString *path = [@"~Documents" stringByExpandingTildeInPath]; 
NSString *filePath = [NSString stringWithFormat:@"%@/data.plist",path]; 

plist中存在,那麼到第二視圖否則在加載時保持第一個視圖。問題是,當我在模擬器中運行我的應用程序時,檢查plist是否存在工作,但當我在iphone設備上安裝我的應用程序並在那裏運行時,它不起作用。我困在這個問題上。預先感謝解決方案

回答

1

你得到的路徑,文件目錄在您的應用程序沙箱不正確,正確的方法是:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 

而且,你怎麼把它放到該文件夾​​?如果該plist文件是應用程序中的資源,那麼它最初位於應用程序包中,並且在使用它之前(如果您希望對其進行寫入訪問)或者只是從資源中讀取它,您需要將其複製到文檔文件夾。

// Path to plist in application resources 
NSString *resourcePath = [[NSBundle mainBundle] pathForResource:@"data" ofType:@"plist]; 
0

您確定您的plist複製到您的項目目錄中。如果您添加它而不復制它,那麼它將在Xcode和模擬器中工作,但不會在將項目複製到另一臺計算機時使用,也不會在將其加載到設備上時使用。