gpt4 book ai didi

Objective-c 类方法和复制返回值

转载 作者:搜寻专家 更新时间:2023-10-30 20:22:26 26 4
gpt4 key购买 nike

我需要一些帮助来理解下面的代码片段。具体来说,我想知道为什么在 methodB 调用 methodA 时使用 copy 关键字。

+ (NSString*) methodA {

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentsDirectory,
NSUserDomainMask, YES);
return [paths objectAtIndex:0];
}

+ (NSString*) methodB:(NSString*)stringToAppend {

static NSString *s = nil;
if(!s) s = [[self methodA] copy];

return [s stringByAppendingString:stringToAppend];
}

旁注:显然类方法可以使用 self 调用其他类方法(而实例方法必须像这样调用类方法 [ClassName classMethodName];

最佳答案

如果从方法 A 返回的 NSString 实际上是一个 NSMutableString,则方法 B 会调用复制。

副本只是为了安全;知道在您使用该字符串时没有任何内容会发生变化,您可以放心。

这是一种常用技术,用于处理您不希望它们可变的对象。

关于Objective-c 类方法和复制返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6960281/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com