Objective c 目标C-使用out id实现一种方法*
我目前正在开发一个目标C类Objective c 目标C-使用out id实现一种方法*,objective-c,nsstring,out,Objective C,Nsstring,Out,我目前正在开发一个目标C类ClassA,并试图实现一个类似于NSURL方法-(BOOL)getResourceValue:(out-id uu-nullable*u-nonnull)value forKey:(NSString*)key error:(out-NSError**u-nullable)error的方法,该方法使用out-id*: 我的方法是:-(BOOL)changeString:(out id*)字符串到字符串:(NSString*)新闻字符串 我希望我的方法将字符串设置为(NS
ClassA
,并试图实现一个类似于NSURL
方法-(BOOL)getResourceValue:(out-id uu-nullable*u-nonnull)value forKey:(NSString*)key error:(out-NSError**u-nullable)error
的方法,该方法使用out-id*
:
我的方法是:-(BOOL)changeString:(out id*)字符串到字符串:(NSString*)新闻字符串
我希望我的方法将字符串
设置为(NSString*)新闻字符串的
值
我希望我的方法是这样使用的:
id inputString;
[[ClassA alloc] changeString:&inputString toString:@"New String"];
inputString
现在应设置为“新字符串”(作为id*)
如何在-(BOOL)changeString:(out id*)字符串到字符串:(NSString*)新闻字符串中执行此操作
谢谢这很简单:
- (BOOL)changeString:(NSString * _Nonnull *)theString
toString:(NSString *)newString {
*theString = newString;
return YES;
}
并使用它:
NSString *inputString;
BOOL result = [self changeString:&inputString toString:@"Hello World"];
NSLog(@"%d - %@", result, inputString);
inputString
不要求为nil
,您甚至可以传递一个值
- (BOOL)changeString:(NSString * _Nonnull *)theString
toString:(NSString *)newString {
*theString = [NSString stringWithFormat: @"%@ %@", *theString, newString];
return YES;
}
NSString *inputString = @"Hello";
BOOL result = [self changeString:&inputString toString:@"World"];
NSLog(@"%d - %@", result, inputString);
虽然传递的参数显然是NSString
,但为什么要使用未指定的id
?我不相信你能传递一个out NSString*可以吗?我以为它只是id?当然可以(查看所有NSError
参数),但您需要两个星号(out-NSString**)字符串
。好的,谢谢,您能给我一个out-NSString的例子吗?所以我的方法有(out-NSString**)字符串并将字符串设置为newString?只是想知道,如果输入的变量有一个值,或者只是设置为null,则out
变量是否可以读取数据?您也可以传递一个值<代码>输入字符串
只是一个指针。我更新了答案。