2013-07-30 52 views
0

我有一個多行文件,我試圖通過將其轉換爲NSString來讀取它。 我在這裏看過:How to read data from NSFileHandle line by line?,但這並不適用於這種情況,因爲它不應該是一個循環;我並不是想要閱讀整件事,只是一行。將文件的第一行轉換爲NSString

示例文件:

ThingsIWantToRead 
Blah Blah Blah 
Blah Blah BLah 
Ect. Ect. 

我想我已經成功地得到了程序文件中的每一行到一個數組,但現在我不能得到數組成的NSString的第一個對象。 Apple的關於getObjects:range:for NSArray(https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSArray_Class/NSArray.html)的文檔在ARC之前,所以Xcode給了我有關將指針類型void *轉換爲__ strong id *等錯誤。

  //This gets first line of file and sets it as a NSString usernameCaseSensitive 
      NSString * fileHandler = [NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:NULL]; 
      NSArray * fileContents = [fileHandler componentsSeparatedByString:@"\n"]; 
      //Set the NSRange 
      NSRange range = NSMakeRange (1, 1); 
      id * objects; 
      objects = malloc(sizeof(id) * range.length); 
      NSString * firstLine = [fileContents getObjects:objects range: range]; 

回答

1

好吧,如果你的陣列是正確的,只是得到它的第一個對象:

NSString * firstLine = fileContents[0]; 
+0

那是相當容易那麼文檔...難道我只是有[1]如果我想要的的NSString成爲第二個對象的內容? –

+1

是的。這是訪問數組中對象的新的下標符號。這相當於調用'[myArray objectAtIndex:index]'。儘管如此,請小心進行理智檢查以發現錯誤。 – Mario