将对象添加到交换机内的一个阵列时的EXC_BAD_ACCESS

时间:2013-07-14 22:05:37

标签: iphone ios objective-c nsmutablearray

这是我的代码

int indiceCorrente = 0;    int differenza = delegate.reader.feedItems.count;

while(variable!=0){
switch(variable){

case 1: ----
case 2: ----


default: { 

                NSMutableIndexSet *add=[[[NSMutableIndexSet alloc]init] autorelease];
                [add addIndex:indiceCorrente];
                [add addIndex:indiceCorrente+1];
                [add addIndex:indiceCorrente+2];
                [self aggiungiElementoArrayLettura:add];





                //[page addObject:@"makeLayout3"];
                NSMutableArray *pagina=[[NSMutableArray alloc]init];

                indiceCorrente=indiceCorrente+1;
                [pagina addObject:indiceCorrente]; <------ EXC_BAD_ACCESS WHY????
                indiceCorrente=indiceCorrente+1;
                [pagina addObject:indiceCorrente];
                indiceCorrente=indiceCorrente+1;
                [pagina addObject:indiceCorrente];


                [pages addObject:pagina];

            }
}
}

1 个答案:

答案 0 :(得分:2)

您无法将基本类型(int,float,double ...)添加到Foundation集合类中。您只能添加对象。当你尝试添加一个int时,它被强制转换为指针(id),并且数组正试图保留它。尝试将您的整数包装在NSNumber中。那看起来像是

[pagina addObject:@(indiceCorrente)];

[pagina addObject:[NSNumber numberWithInt:indiceCorrente]];