Objective C - 使用 out id 实现一个方法*
Objective C - Implement a method using an out id*
我目前正在开发 Objective C class ClassA
并且我正在尝试实现一种类似于 NSURL
方法 - (BOOL)getResourceValue:(out id __nullable * __nonnull)value forKey:(NSString *)key error:(out NSError ** __nullable)error
的方法,该方法使用 out id *
:
我的方法是:- (BOOL)changeString:(out id *)theString toString:(NSString *)newString
我希望我的方法将 theString
设置为 (NSString*) newString's
value
我的方法是这样使用的:
id inputString;
[[ClassA alloc] changeString:&inputString toString:@"New String"];
inputString
现在应该设置为 "New String"(如 id *)
如何在 - (BOOL)changeString:(out id *)theString toString:(NSString *)newString
中执行此操作?
谢谢
这很简单:
- (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);
我目前正在开发 Objective C class ClassA
并且我正在尝试实现一种类似于 NSURL
方法 - (BOOL)getResourceValue:(out id __nullable * __nonnull)value forKey:(NSString *)key error:(out NSError ** __nullable)error
的方法,该方法使用 out id *
:
我的方法是:- (BOOL)changeString:(out id *)theString toString:(NSString *)newString
我希望我的方法将 theString
设置为 (NSString*) newString's
value
我的方法是这样使用的:
id inputString;
[[ClassA alloc] changeString:&inputString toString:@"New String"];
inputString
现在应该设置为 "New String"(如 id *)
如何在 - (BOOL)changeString:(out id *)theString toString:(NSString *)newString
中执行此操作?
谢谢
这很简单:
- (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);