2012-10-18 4 views
-1

У меня есть два xml-файла, и я правильно их разбираю, все в моем журнале, я хочу связать ярлыки своих кнопок с моим массивом xml, но я эта ошибка- [__ NSArrayM objectAtIndex:]: index 1 за пределами границ [0 .. 0] '

*** Terminating app due to uncaught exception 'NSRangeException', reason: '*** - 
    [__NSArrayM objectAtIndex:]: index 1 beyond bounds [0 .. 0]' 

*** First throw call stack: 

(0x1c9b012 0x10d8e7e 0x1c3d0b4 0x30b0 0x101817 0x101882 0x50a25 0x50dbf 0x50f55 0x59f67 
    0x1dfcc 0x1efab 0x30315 0x3124b 0x22cf8 0x1bf6df9 0x1c1ef3f 0x1c1e96f 0x1c41734 
0x1c40f44 0x1c40e1b 0x1e7da 0x2065c 0x26dd 0x2605) 

    libc++abi.dylib: terminate called throwing an exception 

вот код:

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate]; 
    pLabel.textColor = [UIColor blackColor]; 
    Presentation *p1 = [appDelegate.presentationArray objectAtIndex:0]; 
    NSLog(@"p1 %@", p1); 
    pLabel.text = p1.pLabel; 

    p2Label.textColor = [UIColor blackColor]; 

    //I have error in this line objectAtIndex:1 

    Presentation *p2 = [appDelegate.presentationArray objectAtIndex:1]; 
    NSLog(@"p2 %@", p2); 
    p2Label.text = p2.pLabel; 


    [yBtn setTag:0]; 
    [dBtn setTag:1]; 

} 

здесь pasring участие в appDelega: http://pastebin.com/SygRZAGj

Вот XMLParser Класс: http://pastebin.com/yuFNnFB7

Не могли бы вы помочь мне осуществить это, как я могу иметь все файлы в одном массиве, я проблема из-за пустой массив, но как я должен и как я исправила эту проблему

Спасибо заранее!

Edit:

Я хочу, чтобы инициализировать его только один раз, а затем добавить eache презентацию объекта один за другим в том же массиве, как я могу это сделать

+0

проверить, сколько элементов presentationArray действительно содержит, из ошибки следует, что у него есть только 1 элемент, а вы пытаетесь получить доступ к второму. – Vladimir

+1

Чтение ваших последующих вопросов заставляет меня задаться вопросом ... кто дал вам код, который вы опубликовали до сих пор? –

+0

Да, ваши правки работают. Можете ли вы прекратить разлагать ваши вопросы? – BoltClock

ответ

0

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

2

Это ...

app.presentationArray = [[NSMutableArray alloc] init]; 

... создает новый массив для каждого элемента вы найдете. Создайте массив один раз, прежде чем начинать синтаксический анализ, а затем добавьте элементы презентации, когда найдете их.

+0

Как я уже сказал, создайте его перед началом разбора. Поместите его в 'doneFinishLaunchingWithOptions:' as' self.presentationArray = ... '. –

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