проблема с iphone nsarray? - PullRequest
       28

проблема с iphone nsarray?

3 голосов
/ 18 мая 2010

Хорошо, может быть, мне просто нужен другой взгляд на это, но у меня есть следующие строки кода в одном из моих контроллеров представления. Он берет некоторые данные из файла и заполняет их в массив, используя «\ n» в качестве разделителя. Затем я использую этот массив для создания NSDictionary, который используется для заполнения таблицы. Это очень просто Однако это не работает. Вот код:

NSString *dataString = [NSString stringWithContentsOfFile:checklistPath encoding: NSUTF8StringEncoding error:NULL];


    if ([dataString hasPrefix:@"\n"]) {
        dataString = [dataString substringFromIndex:1];

    }
    NSArray *tempArray = [dataString componentsSeparatedByString:@"\n"];
    NSLog(@"datastring:%@",dataString);
    NSLog(@"temp array:",tempArray);
    NSLog(@"%i",[tempArray count]);

    NSDictionary *temporaryDictionary = [NSDictionary dictionaryWithObject: tempArray forKey:@"User Generated Checklist"];
    self.names = temporaryDictionary;
            NSLog(@"names:%@",names);

поэтому в журнале строка данных верна, поэтому она правильно извлекает данные из файла. однако для tempArray я получаю:

2010-05-17 19:15:55.825 MyApp[7309:207] temp array:

для счетчика tempArray, который я получаю:

2010-05-17 19:15:55.826 myApp[7309:207] 5

, которое является правильным количеством строк в массиве

Так что я в тупике. У меня есть ТОЧНО те же несколько строк кода в другом контроллере представления, и он отлично работает. То, что безумнее, это последний NSLog, который показывает, что последний NSDictionary (names) отображает это, что выглядит правильно:

2010-05-17 19:15:55.827 FS Companion[7309:207] names:{
    "User Generated Checklist" =     (
        "System|||ACTION",
        "System|||ACTION",
        "System|||ACTION",
        "System|||ACTION",
        "System|||ACTION"
    );

\

Мне не хватает чего-то действительно очевидного ??

Ответы [ 2 ]

2 голосов
/ 18 мая 2010

В операторе NSLog отсутствует спецификатор формата, который выводит временный массив.

1 голос
/ 18 мая 2010

у вас нет переменной в строке, которая записывает tempArray.

это должно выглядеть так:

NSLog([NSString stringwithformat:@"temp array: %@",tempArray]);
...