Memory NSString stringByAppendingString内存问题

Memory NSString stringByAppendingString内存问题,memory,nsstring,Memory,Nsstring,在使用iPhone的objective-c上: 我想用字符串进行追加,但我可以使用自动释放吗?是这样吗 NSString *str1 = [[NSString alloc] initWithString:@"STR1"]; NSString *str2 = [[NSString alloc] initWithString:@"STR2"]; NSString *s = [[str1 autorelease] stringByAppendingString:[str2 autorelease]]

在使用iPhone的objective-c上:

我想用字符串进行追加,但我可以使用自动释放吗?是这样吗

NSString *str1 = [[NSString alloc] initWithString:@"STR1"]; NSString *str2 = [[NSString alloc] initWithString:@"STR2"]; NSString *s = [[str1 autorelease] stringByAppendingString:[str2 autorelease]]; NSString*str1=[[NSString alloc]initWithString:@“str1”]; NSString*str2=[[NSString alloc]initWithString:@“str2”]; NSString*s=[[str1自动释放]字符串通过追加字符串:[str2自动释放]]; 这会删除*str1和*str2内存吗

例如,如果我有一个方法:

+(void) doSomething { NSString *str1 = [[NSString alloc] initWithString:@"STR1"]; NSString *str2 = [[NSString alloc] initWithString:@"STR2"]; NSString *s = [[str1 autorelease] stringByAppendingString:[str2 autorelease]]; [[NSClassFromString(s) alloc] init]; } +(无效)剂量 { NSString*str1=[[NSString alloc]initWithString:@“str1”]; NSString*str2=[[NSString alloc]initWithString:@“str2”]; NSString*s=[[str1自动释放]字符串通过追加字符串:[str2自动释放]]; [[NSClassFromString(s)alloc]init]; }
我应该解除锁定*s指针吗?

一般规则是,如果调用
alloc
,则必须对该资源调用
release

因此,对于第一个示例,str1和str2将从内存中删除,但是您并没有遵循自动删除的约定。而是将自动释放添加到分配行:

NSString *str1 = [[[NSString alloc] initWithString:@"STR1"] autorelease];
NSString *str2 = [[[NSString alloc] initWithString:@"STR2"] autorelease];
对于第二个示例,因为您没有为
stringByAppendingString
方法调用alloc,所以不需要释放
s


通读指南。这是值得的前期投资,所以你不必处理这些问题的道路上。然后,通读博客文章。

一般规则是,如果你调用
alloc
,你必须调用该资源的
release

因此,对于第一个示例,str1和str2将从内存中删除,但是您并没有遵循自动删除的约定。而是将自动释放添加到分配行:

NSString *str1 = [[[NSString alloc] initWithString:@"STR1"] autorelease];
NSString *str2 = [[[NSString alloc] initWithString:@"STR2"] autorelease];
对于第二个示例,因为您没有为
stringByAppendingString
方法调用alloc,所以不需要释放
s


通读指南。这是值得的前期投资,所以你不必处理这些问题的道路上。然后,通读博客文章。

很抱歉,我的mjme是str1,str2是用户界面,我编辑了文本。很抱歉,我的mjme是str1,str2是用户界面,我编辑了文本