我正在尝试将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
(强者仅为了清晰起见)。
答案 0 :(得分:1)
您应该使用NSString * __strong *
作为here
是的,做那种事并不是一个好主意。