0

私は iOS プログラミングが初めてで、コードを実行しようとするとこのエラーが発生しました。

[UIView _forgetDependentConstraint:]: message sent to deallocated instance 0xe65a0f0

私のプロジェクトには 2 つのビューがあります。最初のビューは、項目JSONserializationを入力するために使用tableViewします。そして、メソッドを使用してdidSelectRowAtIndexPath、対応するオブジェクトを次のビューに送信します。

アイテムは最初のビューで正常に表示され、これまでのところ良好です。しかし、アイテムを選択した後に2番目のビューをロードしようとすると、tableViewクラッシュして上記のエラーが返されます。

でブレークポイントを設定すると、 3 つのオブジェクトが取得さviewDidLoadれますが、配列をカウントしようとすると、上記のエラー メッセージがスローされます。spelControllerView.mkategorierkategorier

これが私のコードです:

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];

2 番目のビュー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"
          }
        ],

      }
    ]
4

1 に答える 1

0

SpelViewController の viewDidLoad から次の行を削除します。

kategorier = [[NSMutableArray alloc] init];

最初の viewController から JSON データを取得した後、カテゴリエを再初期化しないでください。

于 2013-04-01T16:07:03.717 に答える