我有一些让我困惑的代码
代码是:
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再次创建相同的内容
我可以将其更改为将NSStringfromgetString直接发送到insertRoom代码并绕过实际创建NSString每个通过循环
我对此感到困惑
ARC 是否自动处理此问题,允许我NSString在循环中一遍又一遍地声明相同的内容
还是创建了内存泄漏?
提前致谢
菲尔