Ошибка NSarray, при настройке uibutton - PullRequest
0 голосов
/ 28 апреля 2011

Я пытаюсь проанализировать данные, которые мне нужны, из строки, которую я ввожу, однако я получаю сообщение об ошибке. может кто-нибудь прочитать этот код и сказать мне, если я ошибаюсь, пожалуйста.

    NSArray *AllDataArray = [RawMessage componentsSeparatedByString:@"|"];

    NSLog(@"%@", AllDataArray);
    //        Should we bomb Libya ?,0,0,06/04/2011,30/04/2011|Will England win in the olympics ?,0,0,18/04/2011,18/05/2011|Is White the new Black ?,0,0,21/04/2011,21/05/2011|

    //do a for loop and and the questions were ever needed using [AllDataArray objectAtIndex:0];
    NSArray *Question1 = [[AllDataArray objectAtIndex:0] componentsSeparatedByString:@","];
    NSArray *Question2 = [[AllDataArray objectAtIndex:1] componentsSeparatedByString:@","];
    NSArray *Question3 = [[AllDataArray objectAtIndex:2] componentsSeparatedByString:@","];

    //Update ui buttons 
    [btnQuestion1 setTitle:[Question1 objectAtIndex:0] forState:UIControlStateNormal];
    [btnQuestion1 setTitle:[Question1 objectAtIndex:0] forState:UIControlStateHighlighted];
    [btnQuestion1 setTitle:[Question1 objectAtIndex:0] forState:UIControlStateDisabled];
    [btnQuestion1 setTitle:[Question1 objectAtIndex:0] forState:UIControlStateSelected];

Ошибка, которую я получаю - sigabrt в man.m, когда я не коснулся main.m

#import <UIKit/UIKit.h>

int main(int argc, char *argv[])
{
    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
    int retVal = UIApplicationMain(argc, argv, nil, nil); //ERRORS HERE
    [pool release];
    return retVal;
}

1 Ответ

0 голосов
/ 28 апреля 2011

ошибка может отсутствовать в коде, который вы только что опубликовали, так как я просто взял ваш код и заново создал проект, и он работает без ошибок.

НО .. одна вещь, которая может вызывать проблему где-то еще, это ваш AllDataArray. Посмотрите на вывод, как только вы проанализируете разделение строки на «|», вы получите пустую строку в последнем элементе ... И, я полагаю, вы позже разбили эту строку на основе «,» И я могу предположить, что вы ссылаетесь на порядковый номер этого массива без какой-либо проверки границ, как вы делаете здесь

NSArray *Question1 = [[AllDataArray objectAtIndex:0] componentsSeparatedByString:@","];

если в этом массиве нет элементов, вы выдадите ошибку, которая, если ее не обработать, должна всплыть до main ();

НО .. опять же, там много предположений.

...