从用户接受NSArray中的字符串值

时间:2010-08-17 04:43:20

标签: objective-c

嗨我想在运行时接受来自用户的NSArray对象的字符串值我试过的内容

-(void)fun

{

    NSArray *arr = [[NSArray alloc]init];

    for(int i =0;i<3;i++)
    {

        scanf("%s",&arr[i]);
    }
printf("Print values\n");
    for(int j =0; j<3;j++)
    {
        printf("\n%s",arr[j]);
    }
}

我收到错误你可以帮我解决这个问题,是他们在目标c中替代scanf的替代方案。 谢谢

2 个答案:

答案 0 :(得分:1)

具有scanf()格式的

%s会将字符串读入C数组,而不是NSArray对象。您需要将字符串读入C数组,然后将NSString对象添加到NSArray。您还需要一个可变数组来使代码工作。例如:

 NSMutableArray *arr = [[NSMutableArray alloc] initWithCapacity:3];
 for (int i = 0; i < 3; i++)
 {
     char buf[100];
     scanf("%s", buf);
     NSString *str = [NSString stringWithCString:buf encoding:NSASCIIStringEncoding];
     [arr addObject:str];
 }

您可以稍后使用NSLog()打印字符串。

答案 1 :(得分:0)

使用NSMutableArray代替; 也可以使用

[arr addObject:tempVar];