比方说,我有这样的特性:力ARC保留一个空指针的对象引用
@property (nonatomic, readwrite) void*** array;
和init用Objective-C对象的数组:
- (id) init
{
if(self=[super init])
{
array= malloc(10*sizeof(void**));
for(NSUInteger i=0; i<10; i++)
{
array[i]= malloc(10*sizeof(void*));
for(NSUInteger j=0; j<10; j++)
{
array[i][j]= (__bridge_retained void*) @"Hello";
}
}
}
return self;
}
后来我发现,该对象不是真的保留:
Custom* c=[Custom new];
NSLog(@"%@",(__bridge NSString*)c.array[40][40]);
这打印(null),我认为桥梁保留铸造力量保留对象,如何去解决这个问题?
我很困惑。为什么不只是输入正确? – Chuck
你为什么要这样的指针?为什么不使用NSArray,你似乎仍然持有NSObject?此外,它可能会打印零或其他垃圾,因为它没有40个元素。 –
这是问题所在。我没有使用id来测试“强制ARC保留对象”的方式。 –