首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将零附加到NSString的末尾?

将零附加到NSString的末尾?
EN

Stack Overflow用户
提问于 2013-10-24 05:11:11
回答 4查看 906关注 0票数 0

我有些代码有问题。我把范围缩小到这个问题上:首先,reverseString和2都是NSMutableStrings _input1_input2NSStrings,我试图将零添加到最小的字符串中,但是它不能正常工作,这就是我得到的。reverseString@"123",reverseString2是@"34567"

代码语言:javascript
运行
复制
 //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,会被设置为@"",而不是在末尾添加零。顺便说一句,这是在课堂上。

这也是我收到的一个错误:

objc2291:方法缓存损坏。这可能是给无效对象的消息,也可能是其他地方的内存错误。objc2291:接收器0x100300830,SEL0x7fff8a689779,isa 0x7fff727b8bd0,缓存0x7fff727b8be0,桶0x7fff89b9b09c,掩码0x1,占用0x0,包装桶0x7fff89b9b09c objc2291:接收方0字节,桶0字节 objc2291:选择器“长度” (十一分贝)

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-10-29 14:24:59

我发现了我的问题,_input1和_input2是错误的指针,我不得不修复它,抱歉,所有的混乱,最后我得到了我的代码工作!

票数 0
EN

Stack Overflow用户

发布于 2013-10-24 05:15:23

只需尝试使用以下代码

代码语言:javascript
运行
复制
if([_input1 length] > [_input2 length])
{
   for (int i = 0 ; i < [_input1 length] - [_input2 length] ; i ++)
     _input2 = [_input2 stringByAppendingString:@"0"];
}
else
{
   for (int i = 0 ; i < [_input2 length] - [_input1 length] ; i ++)
     _input1 = [_input1 stringByAppendingString:@"0"];
}
票数 0
EN

Stack Overflow用户

发布于 2013-10-24 05:43:34

就像这样:-

代码语言:javascript
运行
复制
   NSString *input1=@"123";
   NSString * input2=@"34567";
    NSMutableArray *one=[NSMutableArray array];
        NSMutableArray *two=[NSMutableArray array];

    //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];
    }

    for (int i=0; i <([input1 length]); i++) {
        NSString *TempStr = [input1 substringWithRange:NSMakeRange(i, 1)];
        [one addObject:[TempStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];

    }

            NSLog(@"%ld",[one count]);
    for (int i=0; i <([input2 length]); i++) {
        NSString *TempStr2 = [input2 substringWithRange:NSMakeRange(i, 1)];
        [two addObject:[TempStr2 stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];

    }
                    NSLog(@"%ld",[two count]);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19557433

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档