【发布时间】:2009-11-24 17:27:43
【问题描述】:
这行得通——它确实可以编译——但我只是想检查一下它是否被认为是好的做法或应该避免的事情?
NSString *fileName = @"image";
fileName = [fileName stringByAppendingString:@".png"];
NSLog(@"TEST : %@", fileName);
OUTPUT: TEST : image.png
使用临时变量可能会更好:
NSString *fileName = @"image";
NSString *tempName;
tempName = [fileName stringByAppendingString:@".png"];
NSLog(@"TEST : %@", tempName);
只是好奇。
【问题讨论】:
-
我知道它并没有真正附加,因为它创建了一个新对象,只是想检查一下,尽管我猜它只是为了可读性和首选样式。
-
如果您正在为 iPhone 编程,则没有自动垃圾收集,因此您的第一个 fileName 实例可能会被泄露。可能最好使用第二个示例,然后在完成后显式释放 fileName。
-
@Rudism - 第一个实例是字符串文字,所以不需要释放
-
这与您的问题无关,但请注意您也可以使用 stringByAppendingPathExtension:@"png"
-
您绝对应该使用
stringByAppendingPathExtension:附加扩展名......
标签: objective-c cocoa coding-style