我想將Do not back up
設置爲Document Directory
中的我的文件夾。iOS 5.0.1:如何驗證該文件夾是否標記爲iCloud的「不備份」?
我發現代碼爲3210,但我如何驗證該文件夾是否被標記。
我想將Do not back up
設置爲Document Directory
中的我的文件夾。iOS 5.0.1:如何驗證該文件夾是否標記爲iCloud的「不備份」?
我發現代碼爲3210,但我如何驗證該文件夾是否被標記。
根據您鏈接的文檔,如果您將該方法設置爲該頁面上列出的方法,該方法將返回YES
(如果該屬性標記正確)。
好的。但是從我發現的文檔'重要:新的「不備份」屬性只會被iOS 5.0.1或更高版本使用。在iOS 5.0及更早版本中,應用程序需要將其數據存儲在
您的應用可以檢查操作系統版本並執行相應的操作。 – hotpaw2
如果我錯了,請糾正我。看起來有三種情況:Pre 5.0,5.0和5.0.1。對於5.0.1,您可以將文件夾標記爲「離線數據」。在5.0中,iCloud存在,但沒有「不備份」解決方案,因此您必須將數據放入庫/緩存中,它將被清除:(在Pre 5.0中沒有iCloud,並且AFAIK數據不會從數據庫或緩存中清除,所以將數據放入緩存也是安全的 – Michael
運行在模擬器上的應用程序,然後使用終端運行對相關文件的命令:
xattr -plxv com.apple.MobileBackup <file name>
謝謝,
xattr對於iOS模擬器中的文件始終不會返回任何內容。是否意味着沒有「擴展屬性」? – gmlvsv
對於iOS 5.1,運行在模擬器上的應用程序,並在終端中運行以下命令:
xattr {filename}
您應該看到下面,如果該項目被正確標記排除:
com.apple.metadata:com_apple_backup_excludeItem
這是正確的答案,實際驗證 – Dev
如果我將「不備份」屬性應用於目錄,其上的文件將不會同步?因爲我將它應用到一個文件夾(../Library/Folder/file),當我使用「xattr ../Library/Folder」時,「com.apple.metadata:com_apple_backup_excludeItem」出現,但是當我使用「xattr。 ./Library/Folder/file「它不。 – tomidelucca
注意:如果沒有列出,這意味着該文件將被備份(如果它在Library或Documents文件夾中)..如果您看到'com.apple.metadata:com_apple_backup_excludeItem:com.apple.MobileBackup',那麼您很好。
對於iOS 5.1或更高版本,此代碼適用於我。
- (BOOL)addSkipBackupAttributeToItemAtPath:(NSString *)filePathString {
NSURL *fileURL =
[NSURL fileURLWithPath:filePathString];
assert([[NSFileManager defaultManager]
fileExistsAtPath: [fileURL path]]);
NSError *error = nil;
BOOL success = [fileURL setResourceValue:[NSNumber numberWithBool:YES]
forKey:NSURLIsExcludedFromBackupKey
error:&error];
return success;
}
哪裏應該使用這個代碼?在appDelegate.m?或者是什麼 ? –
@ Mc.Lover你可以在應用程序的任何位置編寫此代碼。 –
主動程序員我把appDelegate放到了蘋果上,但蘋果再次拒絕了!這很奇怪,我只是用[NSbundle mainBundle]加載文件;我不存儲任何東西!你能幫我解決這個問題嗎? –
您是否得到了應有的工作?我也在爲文檔中的目錄嘗試類似的東西。我們必須爲目錄下的所有文件執行此操作嗎? – applefreak
@AppleDeveloper:是的,如果你不想備份iCloud,你必須標記你的目錄。我試過這個。但正在等待蘋果的評論。 – Devang
很酷。我也在等待蘋果的評論。我已經在http://stackoverflow.com/questions/8209755/iphone-move-resources-to-application-bundle上給出了我的代碼。如果您發現任何問題,請告訴我。謝謝。 – applefreak