Принимать строковые значения в NSArray от пользователя - PullRequest
0 голосов
/ 17 августа 2010

привет, я хочу принять строковые значения в объект 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]);
    }
}

Я получаю сообщение об ошибке, не могли бы вы помочь мне с этим и есть ли у них альтернатива scanf в задаче c. Спасибо

Ответы [ 2 ]

1 голос
/ 17 августа 2010

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() для печати ваших строк позже.

0 голосов
/ 17 августа 2010

используйте NSMutableArray вместо;чем вы можете использовать также

[arr addObject:tempVar];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...