我遇到了一些代码问题。我把它缩小到这个问题:首先,reverseString 和 2 都是NSMutableStrings _input1and _input2are NSStrings,我试图将零添加到最小的字符串,但它不能正常工作,这就是我得到的。reverseString是@"123"和 reverseString2 是@"34567"。
 //they get initialized back into the original strings
_input1=reversedString;
_input2=reversedString2;
//appends 0 to the shortest value
while ([_input1 length]>[_input2 length]){
    _input2=[_input2 stringByAppendingString:@"0"];
    _length=[_input1 length];
}
while ([_input1 length]<[_input2 length]){
    _input1=[_input1 stringByAppendingString:@"0"];
    _length=[_input2 length];
}
//converts the string to an NSArray
for (int i=0; i <([_input1 length]); i++) {
    NSString *TempStr = [_input1 substringWithRange:NSMakeRange(i, 1)];
    [one addObject:[TempStr stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
}
for (int i=0; i <([_input2 length]); i++) {
    NSString *TempStr2 = [_input2 substringWithRange:NSMakeRange(i, 1)];
    [two addObject:[TempStr2 stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
}
现在我注意到,当它通过这个循环时,最小的一个,_input1被设置为,@""而不是在末尾添加零。顺便说一句,这是在一个班级内。
这也是我收到的错误:
objc [2291]:方法缓存损坏。这可能是给无效对象的消息,或者是其他地方的内存错误。objc[2291]: receiver 0x100300830, SEL 0x7fff8a689779, isa 0x7fff727b8bd0, cache 0x7fff727b8be0, buckets 0x7fff89b9b09c, mask 0x1, occupied 0x0, wrap bucket 0x7fff89b9b09c
objc[2291]: receiver 0 bytes, buckets 0 bytes
objc[2291]: selector 'length'
(lldb)