2011-08-23 80 views
2

目前,如果是在我的用戶/文件夾,我只能訪問我的plist,我怎樣才能使項目的plist一部分,而不是(我使用的Xcode 4 ),我正在使用命令行來測試理論,但我想將它合併到一個應用程序中。我需要將其添加到構建?的plist文件中的文件夾 - 它需要與項目

//=================GET FILE PATH FOR PLIST 
NSError *error; 
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); //1 Create a list of paths. 
NSString *documentsDirectory = [paths objectAtIndex:0]; 
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"mypList.plist"]; //3 

NSFileManager *fileManager = [NSFileManager defaultManager]; 

if (![fileManager fileExistsAtPath: path]) 
{ 
    NSString *bundle = [[NSBundle mainBundle] pathForResource:@"mypList" ofType:@"plist"]; //5 

    [fileManager copyItemAtPath:bundle toPath: path error:&error]; } 
} 


//==================READ PLIST 
NSMutableDictionary *savedStock = [[NSMutableDictionary alloc] initWithContentsOfFile: path]; 

NSLog(@"%@", savedStock); 

[savedStock release];  

回答

1

如果你想讓它成爲應用程序的一部分,最好的方法是將文件複製到項目中。

+0

是感謝,我見過的最好的地方是添加到支持文件部分。 – John67

1

如果你只是想讀它在你的應用程序添加到該項目,那麼這將是該包的一部分(所以你應該能夠在代碼中找到它,無論哪裏.app文件啓動)。

[[NSBundle mainBundle] bundlePath]; 

應該大致指向您在正確的方向...

如果你希望寫回,那麼你應該得到的應用測試中的應用程序庫文件夾它的存在(用戶/庫/ your_application_name - 有在OSX文庫的方法來查找庫文件夾),如果它不存在,然後從包中加載它,並在退出/退出/保存/改變等寫回相應的應用程序庫文件夾。

這也可以幫助...

NSString *libraryFolderPath = [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES) lastObject]; 
相關問題