Tôi có thể tải xuống và lưu tệp nhị phân vào thư mục 'Tài liệu' với tên tùy chỉnh hoàn toàn tốt.iOS: Không thể lưu tệp vào thư mục 'Hỗ trợ Ứng dụng', nhưng có thể 'Tài liệu'
Nếu tôi chỉ thay đổi URL thành thư mục 'Hỗ trợ ứng dụng' thay vì thư mục 'Tài liệu', nó không ghi vào URL đó nói rằng nó không tồn tại.
Dưới đây là các mã xây dựng URL:
- (NSURL *) getSaveFolder
{
NSURL * appSupportDir = nil;
NSURL * appDirectory = nil;
NSArray * possibleURLs = [[NSFileManager defaultManager] URLsForDirectory:NSApplicationSupportDirectory inDomains:NSAllDomainsMask];
if ([possibleURLs count] >= 1)
{
appSupportDir = [possibleURLs objectAtIndex:0];
}
if (appSupportDir != nil)
{
NSString * appBundleID = [[NSBundle mainBundle] bundleIdentifier];
appDirectory = [appSupportDir URLByAppendingPathComponent:appBundleID];
}
return appSupportDir;
}
Dưới đây là mã tiết kiệm:
- (void) writeOutDataToFile:(NSData *)data
{
NSURL * finalURL = [self.rootPathURL URLByAppendingPathComponent:self.aFileName];
[data writeToURL:finalURL atomically:YES];
}
Nếu tôi thay đổi NSArray đến:
NSArray * possibleURLs = [[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask];
sau đó nó tiết kiệm tốt .
Tôi đã đọc Apple Tài liệu trên tệp và không thể sửa lỗi này - tôi thiếu gì?
Tại sao bạn thêm id gói vào cuối đường dẫn? Thư mục đã là duy nhất cho ứng dụng của bạn. Việc thêm id gói là không cần thiết. – rmaddy
Vì mã đó được sao chép TRỰC TIẾP từ Hướng dẫn lập trình hệ thống tệp của Apple (Liệt kê 2-1) làm cách chính xác để tạo URL cho một mục trong thư mục hỗ trợ ứng dụng. – iOSProgrammingIsFun
Mã đó không có ý nghĩa đối với iOS. Nó vẫn ổn cho OS X. Trong iOS, thư mục 'Application Support' đã nằm trong sandbox của ứng dụng của bạn. Trong OS X, nó không phải. – rmaddy