【发布时间】:2011-09-14 09:01:54
【问题描述】:
我有一个 NSMutableArray,其中包含我的模型类的实例,称为 PropertyData(只有属性,没有方法)。在我的应用程序中,有一个“在地图上查看”按钮,当点击该按钮时,在地图视图控制器的属性中设置此 NSMutableArray,然后将其视图推送到导航顶部。地图视图控制器成功接收到这个数组(使用 NSLOG 我打印出地图视图控制器中接收到的总项目)但是当循环通过它时我得到了这个错误:
[PropertyData lat] message sent to deallocated instance
知道为什么吗?
感谢您的帮助,
斯蒂芬
附注:
在第一个视图中,控制器数据存储到名为 rqst_entries 的 ivar(在接口中声明为 NSMutableArray 属性然后合成),下面是它如何切换到地图视图:
-(void)show_map
{
PropertiesMapViewController *pMapView = [[PropertiesMapViewController alloc] init];
pMapView.entries = self.rqst_entries; // pMapView.entries is alsi a NSMutableArray
[self.navigationController pushViewController:pMapView animated:YES];
}
这是崩溃的代码:
if(self.entries != nil)
{
NSLog(@"received items count=%d",[self.entries count]);
NSNumberFormater *nf = [[NSNumberFormater alloc] init];
for(PropertyData *property_data in self.entries)
{
if(property_data==nil) continue;
[nf setNumberStyle:NSNumberFormatterDecimalStyle];
// CRASH OCCURS HERE:
NSNumber *lat = [nf numberFromString:property_data.lat];
}
}
【问题讨论】:
-
在应用程序崩溃的地方发布您的代码
-
纯粹的内存泄漏问题。你能发布一些代码吗?
-
您能否展示一些代码 - 否则很难猜出问题出在哪里。
-
您为 Map View Controller 中的可变数组声明了什么属性类型?由于您是从其他视图设置它,您是否已从先前视图中零售接收到的数组。
标签: iphone ios ios4 uiviewcontroller uinavigationcontroller