-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 回答