在ivar指针中放置价值?

时间:2012-08-10 22:43:06

标签: objective-c pointers automatic-ref-counting

我正在尝试将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);
}

我不知道我的语法是否正确。我想将thingIn存储在ivar中。当前错误是

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

这可能吗,如果可以,怎么做?

注意:这被认为是一个坏主意,因为它破坏了封装。我将仅在非常本地的情况下使用它。

注意:ivar定义为__strong NSString* thing(强者仅为了清晰起见)。

1 个答案:

答案 0 :(得分:1)

您应该使用NSString * __strong *作为here

的类型

是的,做那种事并不是一个好主意。