NSMutableArray - проблема с доступом к 2D массиву - PullRequest
1 голос
/ 24 июля 2010

У меня возникли проблемы с доступом к тому, что, по моему мнению, должно быть в моем массиве. Я получаю результаты от веб-службы и пытаюсь понять их.

Служба возвращает массив NSMutableArray с именем GroupOfHouses.

Я настроил свой код для установки массива как такового

NSMutableArray *myHousesGroup;

Затем заполните его

myHousesGroup = result
NSLog(@"Result = %@", result);
NSLog(@"Array Count: %d",[myHousesGroup count]);

Итак, вышеприведенные выводы

    2010-07-23 23:03:33.628 demo4[40880:207] Result = (
    <GroupOfHouses: 0x4c2f410>,
    <GroupOfHouses: 0x4c303b0>
)
2010-07-23 23:03:33.631 demo4[40880:207] Array Count: 2

Я хочу посмотреть, что внутри NSMutableArray, который, кажется, находится внутри массива результатов. Я пришел из PHP фона, поэтому структура массива знакома, но не метод доступа! Я пытался NSLog(@"Array Count: %d",[myHousesGroup[0] count]);, но это не сработало.

Как я могу установить новые массивы в зависимости от количества результатов? По сути, результат от веб-сервиса может вернуть 10 массивов домашней информации.

Спасибо за любую информацию.

Ответы [ 2 ]

0 голосов
/ 25 июля 2010

Вы получаете доступ к первому элементу с помощью:

 [myHousesGroup objectAtIndex:0]

Вы создаете новый массив с

 NSMutableArray* list = [[NSMutableArray alloc] init];

Вы добавляете с помощью:

 [list addObject:o]; // where o is an object you want in the array

Вы получаетесчитать с

 [list count];

http://developer.apple.com/mac/library/documentation/Cocoa/Reference/Foundation/Classes/NSMutableArray_Class/Reference/Reference.html

0 голосов
/ 25 июля 2010

Я совершенно новичок в этом, исходя из опыта веб-разработчиков. Я не уверен на 100%, что это лучшее направление, но это хорошая отправная точка.

Последние пару дней я занимал аналогичную позицию, пытаясь понять смысл NSMutableArrays.

Может показаться, что из вашего кода этот «результат» имеет некую структуру, которая автоматически переводится в массив myHousesGroup как объект.

Работая с coredata, я выяснил, что для получения значений из массивов, состоящих из объектов, необходимо создать новый и заполнить объект той же структуры, что и объект, являющийся элементом в массиве, который вам нужно получить значения из.

В соответствии с:

Recipes *selectedRecipe = [entityArray objectAtIndex:indexPath.row ];
//Recipes is a class. 
//selectedRecipe is an instance of the class Recipes which has the structure I need to get values out of
//entityArray is my NSMutableArray similar to your 'myHousesGroup'
recepeTitle.text = selectedRecipe.RecipieName;
//recipeTitle.text is a label displaying a value from my object
cookingTime.text = selectedRecipe.CoookingTime;
//I think you can see the pattern now

Чтобы получить верхние границы (количество элементов) массива, который вы можете попробовать (используя ваш пример)

NSLog(@"myHousesGroup Array Count: %i",[myHousesGroup count]);

Я не уверен, что смогу помочь с созданием массивов на основе количества результатов. Вам может понадобиться немного больше деталей о логике, которая вам нужна. Вы читаете значения из веб-сервиса и заполняете массивы на основе значений и т. Д.? Каков конечный результат этой части кода в вашем приложении?

Спросите меня, нужна ли вам информация о классе Рецепты и как он построен, какие свойства присутствуют

Надеюсь, это немного поможет

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