Objective c 将第二个字符串对象添加到数组中后,第一个对象发生了更改
将第二个字符串对象添加到数组中后,第一个对象发生了更改Objective c 将第二个字符串对象添加到数组中后,第一个对象发生了更改,objective-c,nsarray,Objective C,Nsarray,将第二个字符串对象添加到数组中后,第一个对象发生了更改 [m_cObjImageNameArrayPtr addObject:m_cObjParsedStringPtr]; 但在上面的语句中,我调用了一个方法并将m_cObjParsedStringPtr添加到数组中,一次调用一个。添加第二个元素后,第一个元素和第二个元素包含相同的值,添加第三个元素后-第一、第二、第三个元素显示相同的值,但实际上它们不同 我怀疑你的m_cObjParsedStringPtr指针每次都指向同一个对象。。。添加更多
[m_cObjImageNameArrayPtr addObject:m_cObjParsedStringPtr];
但在上面的语句中,我调用了一个方法并将
m_cObjParsedStringPtr
添加到数组中,一次调用一个。添加第二个元素后,第一个元素和第二个元素包含相同的值,添加第三个元素后-第一、第二、第三个元素显示相同的值,但实际上它们不同 我怀疑你的m_cObjParsedStringPtr
指针每次都指向同一个对象。。。添加更多的代码这是一个可怕的命名方案,您可能需要查看它,它肯定会使您的代码更易于阅读。您如何检查数组以获得这些结果?是否可能将同一实例添加到数组中两次?需要多一点代码来找出真正发生的事情。如果你能上传NSLog(@“%@”,m_cObjImageNameArrayPtr)的输出代码>这将非常有用。在调试器中,我正在检查所有变量值。在向数组添加字符串时,它的旧值将被新值替换,但计数不会减少。m_cObjParsedStringPtr=(NSMutableString*)nil;m_cObjParsedStringPtr=[[NSMutableString alloc]init];在被调用的方法中,我添加了新的字符串值。[m_cObjParsedStringPtr setString:@'';[m_cObjParsedStringPtr appendString:pObjStringPtr];[m_cObjImageNameArrayPtr addObject:m_cObjParsedStringPtr];m_cObjParsedStringPtr=(NSMutableString*)nil;m_cObjParsedStringPtr=[[NSMutableString alloc]init];在被调用的方法中,我添加了新的字符串值。[m_cObjParsedStringPtr setString:@'';[m_cObjParsedStringPtr appendString:pObjStringPtr];[m_cObjImageNameArrayPtr addObject:m_cObjParsedStringPtr];是的,请更正指向同一对象的m_cObjParsedStringPtr。如何修复此问题?好的。我通过以下代码修复了此问题。。NSString*lObjImageNamePtr=[m_cObjParsedStringPtr copy];[m_cobjimagenamearayptr addObject:lObjImageNamePtr];谢谢大家的回复