2

インスタンスで使用しようとしCFSetGetValues()ていNSSetますが、セットのメモリを破壊しているようです。ウォッチポイントを使用して、セット インスタンスが from に書き込まれますobjc_assign_strongCast_non_gc()。今のところ、何が起こっているのかわかりません。

int main(int argc, const char * argv[]) {
  @autoreleasepool {
    NSSet *set = [NSSet setWithObjects:@1, @2, @3, nil];
    const void *objects = calloc(set.count, sizeof(id));
    CFSetGetValues((__bridge CFSetRef)set, &objects);
    NSLog(@"Set %@", set); // *** set has been clobbered ***
  }
  return 0;
}

これは OS X 10.8、64 ビット上にあります。同じコードを iOS シミュレーターで実行すると失敗します。

4

1 に答える 1