stringByAppending字符串问题

时间:2013-12-04 14:09:13

标签: ios objective-c debugging

NSString *wantString;
for (id object in [self.wantTypes allKeys]) {
    NSLog(@"object %@",[self.wantTypes objectForKey:object]);
    [wantString stringByAppendingString:[self.wantTypes objectForKey:object]];
}
NSLog(@"%@ wantstring",wantString);

日志:

Fys1Formel[19004:60b] object Gravitasjon
Fys1Formel[19004:60b] (null) wantstring

为什么appendString不起作用?我尝试过NSString而不是id

5 个答案:

答案 0 :(得分:4)

您正在调用方法来追加字符串但您没有存储或指定该函数的返回。所以你需要分配这个方法的回报:

wantString =  [wantString stringByAppendingString:[self.wantTypes objectForKey:object]];

答案 1 :(得分:3)

只是你的欲望串一直是零; 试试吧:

  NSString *wantString;
    for (id object in [self.wantTypes allKeys]) {
        NSLog(@"object %@",[self.wantTypes objectForKey:object]);
         wantString =  [wantString stringByAppendingString:[self.wantTypes objectForKey:object]];
    }
    NSLog(@"%@ wantstring",wantString);

答案 2 :(得分:2)

将其更改为NSMutableString并分配它。你也应该使用appendString,stringByAppendingString返回新的字符串,不会改变你当前的字符串。

NSMutableString *wantString = [[NSMutableString alloc] init];
for (id object in [self.wantTypes allKeys]) {
    NSLog(@"object %@",[self.wantTypes objectForKey:object]);
    [wantString appendString:[self.wantTypes objectForKey:object]];
}
NSLog(@"%@ wantstring",wantString);

答案 3 :(得分:0)

使用NSMuatableString代替,这是NSString和NSMutableString(静态与动态)之间的区别

答案 4 :(得分:0)

您的问题是您没有存储结果。另外你可以检查字符串 你想添加内容。

尝试这样做:

NSString *wantString = @""; // init your string empty
NSString *temp = @"";

for (id object in [self.wantTypes allKeys])
{
    temp = [self.wantTypes objectForKey:object];

    if (temp.lenght > 0)
    {
        wantString = [wantString stringByAppendingString:temp];
    }
}

NSLog(@"%@",wantString);