我有一些让我困惑的代码
代码是:
for (int i=0; i < numOfRooms; i++) {
NSString* roomName = [self getString:themessageReceived :packetstart + index];
NSLog(@"roomName is %@ with length %d roomID %d",roomName, roomName.length,roomID);
[roomsInTheClub insertRoom:roomID :roomName];
index += roomName.length;
index++;
}
现在最初我在想,看到NSString
是不可变的,我需要NSMutableString
在循环之上创建一个,然后将getString
调用更改为返回一个 mutable NSString
,或者从调用中强制返回
我很惊讶上面的内容确实有效,并允许NSString
再次创建相同的内容
我可以将其更改为将NSString
fromgetString
直接发送到insertRoom
代码并绕过实际创建NSString
每个通过循环
我对此感到困惑
ARC 是否自动处理此问题,允许我NSString
在循环中一遍又一遍地声明相同的内容
还是创建了内存泄漏?
提前致谢
菲尔