【发布时间】:2013-10-24 05:11:11
【问题描述】:
我遇到了一些代码问题。我把它缩小到这个问题:首先,reverseString和2都是NSMutableStrings_input1和_input2是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]:接收器 0x100300830,SEL 0x7fff8a689779,ISA 0x7fff727b8bd0,缓存 0x7fff727b8be0,桶 0x7fff89b9b09c,掩码 0x1,占用 0x0,包装桶 0x7fff89b9b09c
objc[2291]:接收器 0 字节,桶 0 字节
objc[2291]: 选择器“长度”
(lldb)
【问题讨论】:
-
但是您的代码运行良好,问题出在哪里??
-
所以你的意思是说在你的两个数组中它显示零对象对吗??
-
您的代码对我来说运行良好。
-
@它不适合我???,我刚刚升级到 osx 小牛,你认为这可能是问题吗??我在升级之前一直在研究代码
-
@opj 我已经更新了代码请尝试相同的操作??
标签: ios objective-c nsstring nsarray nsmutablestring