2012-05-19 36 views
3

Objective-C的createFileAtPath:contents:attributes需要NSData類型,但我想創建一個帶有NSString內容的文件。我該怎麼做呢?createFileAtPath:contents:存儲NSString的屬性

我知道這可能是一個非常基本的答案,但我剛開始學習如何使用Objective-C的,並與我用其他語言也有這麼多不同的數據類型和對象。

謝謝!

回答

3

你可以嘗試用字符串的內容創建NSData,像這樣:

NSString *s = @"Hello, world!"; 
NSData *d = [s dataUsingEncoding:NSUTF8StringEncoding]; 

您也可以存儲NSStrng直接在文件:

[s writeToFile:@"/my/file/path/file.txt" atomically:NO encoding:NSUTF8StringEncoding error:nil]; 

注意這個答案是在肯·托馬斯的筆記後編輯。

+0

謝謝。第二種選擇看起來最好。 – Hope4You

+0

@dasblinkenlight,你不能用' - [NSString的長度]'以這種方式。它是UTF-16字符的計數,而不是UTF-8字符。無論如何,最好不要使用C字符串作爲中介。只需直接從字符串得到'NSData':'NSData的* d = [someString dataUsingEncoding:NSUTF8StringEncoding]' –

+0

@KenThomases感謝您的注意,我編輯的答案。我不太確定如何通過字符串的內部內容來獲取'NSData',您獲取數據的方式要好得多。我還是比較新的Objective-C,感謝教我一個新的訣竅:) – dasblinkenlight