for循环中的stringByAppendingString

时间:2014-02-24 17:28:01

标签: objective-c for-loop nsstring

我想把我的字符串:@“test”改为@“----”

在控制台中我得到:“对象返回空描述”

我试图在foo2中为foo中的每个字符制作一个“ - ”,这样我得到:“----”但是它不起作用。香港专业教育学院看了看,并找出首先我的字符串,但我做了:@“”或我错了?但[NSString new]也没有用。

错误在哪里?

- (void)viewDidLoad
{ 
    [super viewDidLoad];
    NSString *foo = @"test";
    NSString *foo2 = @"";

    for(int i=0; i < foo.count; i++)
    {
        [foo2 stringByAppendingString:@"-"];
    }

    NSLog(foo2);
}

2 个答案:

答案 0 :(得分:5)

更改

for(int i=0; i < foo.count; i++)
{
    [foo2 stringByAppendingString:@"-"];
}

for(int i=0; i < foo.length; i++)
{
    foo2 = [foo2 stringByAppendingString:@"-"];
}

答案 1 :(得分:1)

始终使用NSLog(@"%@", object)否则会出现编译错误 - &gt; “潜在的不安全”

对于字符串操作,请考虑NSMutableString。

可以使用NSMutableString编写相同的代码,

NSMutableString *foo2 = [[NSMutableString alloc] initWithFormat:@""];
for(int i=0; i < [foo length] ; i++){
    [foo2 appendString:@"-"];
 } 
NSLog(@"%@", foo2);