Как текстовые файлы могут быть написаны с использованием Objective-C? - PullRequest
2 голосов
/ 24 января 2011

В .NET файл может быть записан в файловую систему с помощью:

FileStream fs = File.Create(@"Filename");
StreamWriter sw = new StreamWriter(fs);
sw.WriteLine("Hello, World!");
// etc...
sw.Close();
fs.Close();

Как бы я выполнил ту же операцию в Objective-C и Cocoa? Я полагаю, что он включает в себя класс NSMutableData, но я не знаю, как его реализовать.

Ответы [ 6 ]

2 голосов
/ 24 января 2011

Tiny Mac Tutorials имеет сообщение на эту тему.

Пример кода из этого поста ниже:

// filetest.m
// Created by macateeny.blogspot.com Sept 2008.
// Copyleft (c) 2008. some rights reserved.
// 
// Compile from the command line with:
// gcc filetest.m -Wall -o filetest -framework Foundation
//
#import <Foundation/Foundation.h>

// main entry point of our file test tool with the argument counter and vector
int main(int argc,char *argv[])
{
    // allocate a memory pool for our NSString Objects
    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];

    // declare NSString Obj pointer and initialise it
    NSString *str = @"Cooking with Objective-C\r\n";

    // declare NSString filename and alloc string value
    NSString *filenameStr = @"./filetest.txt";

    // NSObject which contains all the error information
    NSError *error;

    // write contents and check went ok
    if(![str writeToFile: filenameStr atomically: YES encoding:NSUTF8StringEncoding error:&error]) {
            NSLog(@"We have a problem %@\r\n",[error localizedFailureReason]);
    }

    // unleash the allocated pool smithers
    [pool release];

    // The app is terminated
    return 0;
}
1 голос
/ 24 января 2011

Обратите внимание, что Objective C является чисто надмножеством стандарта C.Большинство обычных вызовов библиотеки posix (в stdio, stdlib и т. Д.) Доступны и могут использоваться, если вы не пытаетесь использовать их для выхода из песочницы приложения (запись в системные каталоги и т. Д.)1002 * Таким образом, fopen () и fprintf () также отлично подойдут для записи текста и данных в формате ASCII или UTF8 в файлы.Вы можете использовать NSSearchPathForDirectoriesInDomains, чтобы найти подходящие имена каталогов, и использовать различные удобные методы NSString для преобразования NSStrings в UTF8.

0 голосов
/ 24 января 2011

Для последней версии Какао на iOS или MacOS вы можете сделать это, если вы не хотите проверять на ошибку,

NSString *str = @"Wollah";
[str writeToFile:@"Wollah.txt" atomically:YES encoding:NSUTF8StringEncoding error:NULL];
0 голосов
/ 24 января 2011

См. Документы Apple по разработке - концепции какао специально для этого Строки В обзорных документах Apple библиотеки приведены все концепции, в первую очередь это даст вам представление о том, какие детали вам нужны

0 голосов
/ 24 января 2011

NSString имеет метод writeToFile.

0 голосов
/ 24 января 2011
NSString *str = @"Wollah";
[str writeToFile:@"/Wollah.txt" atomically:YES encoding:NSUTF8StringEncoding error:nil];

Хотя рекомендуется использовать NSURL, и я всегда так делаю.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...