iOS archiveRootObject 歸檔失敗問題


歸檔失敗問題出在路徑上,NSHomeDirectory()

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

    stringPath = [stringPath stringByAppendingPathComponent:@"a.txt"];            // 成功

    NSLog(@"1111%@",stringPath);

    NSString * path2 = [NSHomeDirectory() stringByAppendingPathComponent:@"a.txt"];      // 失敗,注意這里用的是NSHomeDirectory()

    NSLog(@"2222%@",path2);

    BOOL suc = [NSKeyedArchiver archiveRootObject:@"aaaa" toFile:path2];

    if (suc) {

        NSLog(@"user 歸檔成功!");

    }else{

        NSLog(@"user 歸檔失敗!");

    }

 

1.NSHomeDirectory()  :  

/var/mobile/Containers/Data/Application/28C6BFE8-4E50-4DEB-9E55-18F0815CDBC5

2.[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex: 0] :

/var/mobile/Containers/Data/Application/F7DC1040-57CB-4104-8AD6-55E9F287FC38/Documents/

看一下,

NSHomeDirectory() + /fileName   =  /var/mobile/Containers/Data/Application/28C6BFE8-4E50-4DEB-9E55-18F0815CDBC5/fileName  歸檔失敗

[...NSDocumentDirectory...] +/fileName  = /var/mobile/Containers/Data/Application/F7DC1040-57CB-4104-8AD6-55E9F287FC38/Documents/fileName 成功 

紅色區域是問題所在


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM