3

NSArrayオブジェクト userIDsを含むこの実装ファイルがあります

NSArray *userIDs;
NSInteger friendID;

@implementation TableViewController

-(void)reciveFriendsIDs:(NSArray *)array
 {
userIDs = [NSArray arrayWithArray:array];
 }

-(NSString *)getFriendId
{
 return [userIDs objectAtIndex:friendID];
}
.
.
.
@end

メソッドは、次の-(NSString *)getFriendIdように別のクラスから呼び出します。

TableViewController *tableController = [[TableViewController alloc]init];
NSString *fid = [tableController getFriendId];

しかし、「-[__NSArrayI RespondsToSelector:]: 割り当て解除されたインスタンス 0x20320200 に送信されたメッセージ」というエラーが発生し、コンパイラは次の行にエラーを示します。

return [userIDs objectAtIndex:friendID];
4

2 に答える 2

11

arrayWithArray 静的メソッドで NSArray を割り当てています。

このようにして、自動解放プールに追加され、保持カウントは 0 になります。保持するか、[[NSArray alloc] init] で手動で割り当てます。

于 2012-07-15T09:26:03.813 に答える