2013-07-30 2 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: для 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

Смежные вопросы