0

ivar ポインターをメソッドに渡してから、その ivar に値を配置しようとしています。

static void placeThis(NSString *thingIn, NSString **here) {
    *here = thingIn;
}

- (void) placeThis:(NSString *)thingIn inHere:(NSString **)here {
    *here = thingIn;

}
- (void) place:(NSString*)thingIn {
    [self placeThis:thingIn inHere:&thing];
    placeThis(thingIn, &thing);
    NSLog(@"How did that go? %@", thing);
}

構文が正しいかどうかはわかりません。ivarに保存したいthingIn。現在のエラーは

passing address of non-local object to __autoreleasing parameter for write-back

これは可能ですか?

注:これはカプセル化を壊すため、悪い考えと見なされます。これは非常にローカルなコンテキストでのみ使用します。

: ivar は次のように定義されます__strong NSString* thing(strong はわかりやすくするためだけです)。

4

1 に答える 1

1

NSString * __strong *のタイプとして使用する必要がありますhere

そして、はい、そのようなことをするのは良い考えではありません。

于 2012-08-10T23:10:42.337 に答える