私がこのプロパティを持っているとしましょう:
@property (nonatomic, readwrite) void*** array;
そして、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) を出力します。ブリッジ保持キャストが強制的にオブジェクトを保持していると思いましたが、これを回避するにはどうすればよいですか?