将 UITextfield 转换为 NSMutableArray 时出现问题



我使用 NSArray 进行了这项工作,直到我意识到我需要将字符串插入数组。现在我将其更改为 NSMutableArray,但我的语法有问题。我是否可以在 NSMutable 数组中使用 componentsJoinedByString?

    NSString *item;
    int numofSeg;
    int needSeg;
if (textfield.text == @"::") {
        numofSeg = 0;
    }
    NSMutableArray *dlist = [[NSMutableArray alloc]init];
    //take string from textfield and split it into a list on colons.
    dlist = [textfield.text componentsSeparatedByString:@":"];
    //run through list to count how many segments. Non blank ones.
    for (item in dlist) {
        if (item != @""){
            numofSeg = numofSeg + 1;
            NSLog(@"%@",numofSeg);
        }
    }
    //determine number of segments
    needSeg = 8 - numofSeg;
    while (needSeg > 0) {
        //insert 0000 at blank spot
        [dlist insertString:@"0000" atIndex:@""];
        needSeg = needSeg - 1;
    }
    for (item in dlist) {
        if (item == @"") {
            //remove blank spaces from list
            [dlist removeAllObjects:item];
        }
    }
    //join the list of times into a string with colon
    NSString *joinstring = [dlist componentsJoinedByString:@":"];
    NSLog(@"%@",joinstring);

我认为NSMutableArray没有一种叫做insertString:atIndex:的方法。您可能应该改用insertObject:atIndex:

你到底得到什么错误?

编辑:

如果您只使用NSMutableArray@" "之前插入@"0000",那么您可以简单地执行以下操作:

string = [string stringByReplacingOccurrencesOfString:@" " withString:@" 0000"];

或类似的东西。无需使用NSMutableArray

我终于想通了。 这是我最终用来解决这个问题的方法:

NSString *z = @"0000";
z =  [z stringByAppendingString:@""]; 

最新更新