Moh*_*lah 3 memory-management objective-c ios
我有一个带有NSArray对象userID的实现文件
NSArray *userIDs;
NSInteger friendID;
@implementation TableViewController
-(void)reciveFriendsIDs:(NSArray *)array
{
userIDs = [NSArray arrayWithArray:array];
}
-(NSString *)getFriendId
{
return [userIDs objectAtIndex:friendID];
}
.
.
.
@end
Run Code Online (Sandbox Code Playgroud)
并且该方法-(NSString *)getFriendId从另一个类中调用它,如下所示:
TableViewController *tableController = [[TableViewController alloc]init];
NSString *fid = [tableController getFriendId];
Run Code Online (Sandbox Code Playgroud)
但我有一个错误说" - [__ NSArrayI respondsToSelector:]:消息发送到解除分配的实例0x20320200"并且编译器指示此行中的错误:
return [userIDs objectAtIndex:friendID];
Run Code Online (Sandbox Code Playgroud)
Ser*_*yol 10
您正在使用arrayWithArray静态方法分配NSArray.
这样它就会被添加到自动释放池中,并且保留计数将为0.保留它或者用[[NSArray alloc] init]手动分配它
| 归档时间: |
|
| 查看次数: |
4483 次 |
| 最近记录: |