嗨我想在运行时接受来自用户的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的替代方案。 谢谢
答案 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];