Ответ 1
NSData
имеет метод под названием writeToURL:atomically:
, который делает именно то, что вы хотите сделать. Посмотрите документацию для NSData
, чтобы узнать, как ее использовать.
NSData *data;
data = [self fillInSomeStrangeBytes];
Теперь мой вопрос заключается в том, как я могу написать этот data
самый простой способ для файла.
(У меня уже есть NSURL file://localhost/Users/Coding/Library/Application%20Support/App/file.strangebytes
)
NSData
имеет метод под названием writeToURL:atomically:
, который делает именно то, что вы хотите сделать. Посмотрите документацию для NSData
, чтобы узнать, как ее использовать.
writeToURL: atomically: или writeToFile: atomically: если у вас есть имя файла вместо URL.
Обратите внимание, что запись NSData
в файл является операцией ввода-вывода, которая может блокировать основной поток. Особенно, если объект данных большой.
Поэтому рекомендуется выполнять это на фоновом потоке, самым простым способом было бы использовать GCD следующим образом:
// Use GCD background queue
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^{
// Generate the file path
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *dataPath = [documentsDirectory stringByAppendingPathComponent:@"yourfilename.dat"];
// Save it into file system
[data writeToFile:dataPath atomically:YES];
});