我使用 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:@""];