как создать массив строк или с плавающей точкой в ​​Objective-C - PullRequest
5 голосов
/ 12 августа 2011

Мне нужна помощь, мне нужно знать, как создать массив строк, извлеченных из массива.Я использую PowerPlot для графа, и он принимает только плавающий или строковый массив.

Мне нужно создать что-то вроде этого динамически.

NSString * sourceData [7] = {@ "2", @ "1", @ "4", @ "8", @ "14", @ "15", @ "10"};

Ниже приведен мой код для поиска чисел в строках.

NSInteger drunked = [appDelegate.drinksOnDayArray count];
NSMutableArray * dayArray = [[NSMutableArray alloc] init];
NSMutableArray * sdArray = [[NSMutableArray alloc] init];
//float *sdArray[7];


for (int i=0; i<drunked; i++) {
    DayOfDrinks *drinksOnDay = [appDelegate.drinksOnDayArray objectAtIndex:i];
    NSString * dayString= [NSDate stringForDisplayFromDateForChart:drinksOnDay.dateConsumed];
    [dayArray addObject:dayString];
    NSLog(@"%@",[dayArray objectAtIndex:i]);

    drinksOnDay.isDetailViewHydrated = NO;
    [drinksOnDay hydrateDetailViewData];

    NSString * sdString= [NSString stringWithFormat:@"%@", drinksOnDay.standardDrinks];
    [sdArray addObject:sdString];

    NSString *tempstring;
    NSLog(@"%@",[sdArray objectAtIndex:i]);

}

спасибо за помощь:)

Ответы [ 3 ]

7 голосов
/ 12 августа 2011

Массивы в Objectice-C не так сложны для работы:

NSMutableArray *myArray = [NSMutableArray array];
[myArray addObject:@"first string"]; // same with float values
[myArray addObject:@"second string"];
[myArray addObject:@"third string"];
int i;
int count;
for (i = 0, count = [myArray count]; i < count; i = i + 1)
{
   NSString *element = [myArray objectAtIndex:i];
   NSLog(@"The element at index %d in the array is: %@", i, element); // just replace the %@ by %d
}

Вы можете использовать NSArray или NSMutableArray - в зависимости от ваших потребностей, они предлагают различные функции.

Следующий урок охватывает именно то, что вы ищете:

http://www.cocoalab.com/?q=node/19

1 голос
/ 12 августа 2011

Вы также можете добавить элементы в массив при инициализации (и при желании добавить их позже, только если вы используете Mutable версию класса коллекции:

NSMutableArray *myArray = [[NSMutableArray alloc] initWithObjects:@"2", @"1", @"4", @"8", @"14", @"15", @"10", nil];
[myArray addObject:@"22"];
[myArray addObject:@"50"];

//do something

[myArray release];
0 голосов
/ 12 августа 2011

Вы можете использовать malloc для создания массива в стиле C.что-то вроде этого должно работать:

NSString **array = malloc(numElements * sizeof(NSString *))
some code here
free(array)

Имейте в виду, что в отличие от массива NSMutable, массивы c не сохраняют данные, поэтому вы должны управлять им при необходимости.И не забудьте про бесплатное

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