Sef*_*an2 -1 cocoa objective-c nsstring
我有两个NSString,A和B.
我希望A成为B \n.
我能怎么做?
如果在我使用的方法中
NSString *string_B = [[NSString alloc] initWithString:@"something_from_a_DB"];
NSString *string_A = [[NSString alloc] initWithString:@"something_from_a_DB"];
if (aTrueCondition) {
string_C = [NSString stringWithFormat:@"%@\n%@", string_B, string_A];
} else {
string_C = string_A;
}
Run Code Online (Sandbox Code Playgroud)
是string_C = string_A; 内存泄漏还是好的?
我添加了[string_A release],因为string_C是一个保留属性.现在它有效.
这是将它们组合在一起的方法:
NSString *newString = [NSString stringWithFormat:@"%@\n%@", stringB, stringA];
Run Code Online (Sandbox Code Playgroud)
第二部分是"成为newString
".这很难做到,因为常规字符串在Cocoa中是不可变的.你可以做的最好的事情是扔掉旧的A并将A指向新的字符串:
NSString *strA = @"foo";
NSString *strB = @"bar";
strA = [NSString stringWith…];
Run Code Online (Sandbox Code Playgroud)
小心不要泄漏A:
NSString *strA = [[NSString alloc] initWithString:@"foo"];
strA = [NSString stringWith…]; // this is a leak
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
451 次 |
最近记录: |