目标C - 使用out id实现方法*

时间:2017-06-20 06:40:28

标签: objective-c nsstring out

我目前正在开发一个Objective C类ClassA,我正在尝试实现类似于使用NSURL的{​​{1}}方法- (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设置为(NSString *)theString

我的方法就像这样使用:

newString's

id inputString; [[ClassA alloc] changeString:&inputString toString:@"New String"]; 现在应该设置为“New String”(作为id *)

我如何在inputString中执行此操作?

由于

1 个答案:

答案 0 :(得分:0)

这很简单:

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