-1

stackoverflow で同じトピックを見つけましたが、問題を解決できません。

これは私のコードです

私の.hで

@property (nonatomic, retain) NSMutableArray *favoriteShops;

私の.m

NSString *idStr = @"";
NSString *shopTypeId = @"";
for (SHDFavoriteShopView *favoriteShopView in favoriteShops) {
            idStr = [favoriteShopView valueForKey:kId];
            shopTypeId = [favoriteShopView valueForKey:kShopTypeId];
            if (tappedView.tag == [idStr intValue]) {  // Crash here
                shop.shopType = [shopTypeId intValue];
                break;
            }

        }

通常ではなく、時々問題が発生します。

手伝っていただけませんか。

ありがとうございます

4

1 に答える 1

1

アクセスしている文字列 (idStringこの場合) が既に解放されていることを示しています。これが発生する理由はいくつかあります。文字列が最初に自動解放メソッド ( など[NSString stringWithFormat:@"..."]) を介して割り当てられ、文字列が自動解放された場合。または、文字列を割り当てたが、後で明示的に呼び出して解放した場合[idStr release]。すでに解放されている文字列を再利用していないことを確認する必要があります。それは難しいかもしれません!

于 2013-09-05T04:11:53.853 に答える