0

購入したアイテムを配列に追加して、データを取得してテーブルビューに簡単に表示できるようにしています..しかし、sigabrtエラーが発生しています..以下のコードの問題は何ですか?

テーブルビュー

if (indexPath.section == 0) {

    switch (indexPath.row) {
        case 0:

            cell.textLabel.text = @"Default Gun";
            break;

        case 1:

            cell.textLabel.text = [[[[GameData sharedData] gunsArray] objectAtIndex:0] localizedTitle];
            break;


        default:
            break;

    }


    - (NSMutableArray *) gunsArray {

        SKProduct *product1 = [[InAppStore sharedStore] getGun1];
        SKProduct *product2 = [[InAppStore sharedStore] getGun2];
        SKProduct *product3 = [[InAppStore sharedStore] getGun3];
        SKProduct *product4 = [[IInAppStore sharedStore] getGun4];

        NSMutableArray *arr = [[NSMutableArray alloc] init];

        if ([[NSUserDefaults standardUserDefaults] boolForKey:@"isGun1Purchased"] == YES && ![arr containsObject:product1]) {
            [arr addObject:product1];  // error occurs here

        }
        if ([[NSUserDefaults standardUserDefaults] boolForKey:@"isGun2Purchased"] == YES && ![arr containsObject:product2]) {
            [arr addObject:product2];  

        }
        if ([[NSUserDefaults standardUserDefaults] boolForKey:@"isGun3Purchased"] == YES && ![arr containsObject:product3]) {
            [arr addObject:product3];

        }

        if ([[NSUserDefaults standardUserDefaults] boolForKey:@"isGun4Purchased"] == YES && ![arr containsObject:product4]) {
            [arr addObject:product4];

        }

        return [arr autorelease];
    }
4

1 に答える 1

1

おそらくnil配列に挿入しようとします(これにより例外が発生し、最終的にSIGABRTに挿入されます)。したがって、product変数の1つが。であるかどうかを確認してくださいnil

ああ、あなたはARCに切り替える必要があります(それはあなたの問題とは関係ありませんが)。

于 2013-03-05T11:50:20.377 に答える