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);
}

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

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 回答