我是 iOS 编程新手,在尝试运行我的代码时遇到了这个错误。
[UIView _forgetDependentConstraint:]: message sent to deallocated instance 0xe65a0f0
我的项目中有两个视图。第一个视图用于JSONserialization
填充tableView
项目。我使用该方法didSelectRowAtIndexPath
将相应的对象发送到下一个视图。
这些项目在第一个视图中显示得很好,到目前为止一切都很好。但是,当我在其中选择一个项目后尝试加载第二个视图时,tableView
它会崩溃并返回上面写的错误。
viewDidLoad
当我在in上设置断点时spelControllerView.m
,kategorier
会得到 3 个对象,但是当它尝试对数组进行计数时kategorier
,会抛出上面的错误消息。
这是我的代码:
ViewController.m
第一个视图didSelectRowAtIndexPath
:
SpelControllerView *spelControllerView = [[SpelControllerView alloc] initWithNibName:@"SpelControllerView" bundle:nil];
spelControllerView.title = [[jsonSnippet objectAtIndex:indexPath.row] objectForKey:@"CategoryName"];
spelControllerView.kategorier = [[jsonSnippet objectAtIndex:indexPath.row] objectForKey:@"Games"];
[self.navigationController pushViewController:spelControllerView animated:YES];
第二视图SpelViewController.m
- (void)viewDidLoad{
[super viewDidLoad];
kategorier = [[NSMutableArray alloc] init];
tableViewControl.dataSource = self;
tableViewControl.delegate = self;}
- (int)numberOfSectionsInTableView:(UITableView *)tableView {
return 1;}
- (int)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
return [kategorier count];}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{static NSString *cellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
if (cell == nil)
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];
cell.textLabel.text = [[kategorier objectAtIndex:indexPath.row] objectForKey:@"Games"];
return cell;}
SpelControllerView.h
:
@interface SpelControllerView : UIViewController <UITableViewDelegate, UITableViewDataSource> {
UITableView *tableViewControl;
NSMutableArray *kategorier;}
@property (nonatomic, retain) NSMutableArray *kategorier;
谢谢你的帮助!
更新:
这是我的 Json 文件。
[
{
"CategoryName": "Arcade",
"Games": [
{
"GameName": "Arcade game 1"
},
{
"GameName": "Arcade game 2"
},
{
"GameName": "Arcade game 3"
}
],
},
{
"CategoryName": "FPS ",
"Games": [
{
"GameName": "FPS game 1"
},
{
"GameName": "FPS game 2"
}
],
},
{
"CategoryName": "Strategy",
"Games": [
{
"GameName": "Strategy game 1"
},
{
"GameName": "Strategy game 2"
}
],
},
{
"CategoryName": "C64",
"Games": [
{
"GameName": "C64 game 1"
},
{
"GameName": "C64 game 2"
}
],
}
]