2011-04-08 67 views
1

我有一个问题,当我尝试在iOS 3.1.3 运行我的应用我跑我的应用程序在4.1和孤单是没有问题的,但我的3.1.3应用程序崩溃。 在此行中我的应用程序崩溃:的NSMutableArray到NSDictionary中的iOS 3.1.3问题

NSDictionary *atm= (NSDictionary *)[atmData objectAtIndex:0]; 

这里是一块我的代码:

DataHelper *mydata = [[DataHelper alloc] init]; 
NSMutableArray *atmData = [mydata getAllAtmByLocation:appDelegate.userLocation];  
if(atmData != nil){ 
    NSDictionary *atm= (NSDictionary *)[atmData objectAtIndex:0]; 
    //... 
} 

就像我说的这个问题只发生在iOS 3.1.3,在4.1它完美的作品。 Thx for ur help !!

+0

什么是崩溃的消息? – kennytm 2011-04-08 18:22:46

+0

我无法看到它的Cuz逼债知道为什么,但Xcode中没有让我调试应用程序,它安装连接我的iPhone,然后我运行它,但不能调试。 – 2011-04-08 18:25:20

+1

请发布控制台输出等错误信息。可能是因为你调用的某些API在3.1.3中不受支持,所以你的数据在这个版本上是没有的。您正在访问数组而不检查其是否包含元素,以便在空元素时导致崩溃。 – Joe 2011-04-08 18:25:52

回答

0

我猜你得到一个标超出范围的错误。 getAllAtmByLocation:是否有可能返回空数组?你可能会改变你有条件的:

 
if (atmData != nil && [atmData count] > 0) { 
    ... 
} 
+0

是的! Thx dde解决了我的问题。但为什么这只发生在3.1.3? – 2011-04-08 18:35:09

0

检查[atmData count]并确保阵列实际上包含的元素。也许无论你用什么来填充数组,3.1.3都不支持。