Магазин Ссылки на переменные в NSMutableArray

голоса
0

Я ищу способ хранить ссылки на переменные внутри NSMutableArray. Как переменные будут создаваться динамически на основании чего выбрал пользователь, я хочу, чтобы иметь возможность просто перебирать этот массив и получить ссылки на эти созданные переменные. В случае, если это имеет значение, я создаю проект iPhone. Однако, когда я пытаюсь сделать это, используя следующий код:

for (int a = 0; a < 10; a++)
{
UIView *tempView;
[listingOfViews addObject:tempView];
}

for (int a = 0; a < [listingOfViews count]; a++)
{
[listingOfViews objectAtIndex:a] = defaultViewStructure;
}

Это дает мне эту ошибку: «ошибка: именующее требуется в качестве левого операнда назначения»

Есть идеи?

EDIT: Кроме того , я получаю эту ошибку: «ошибка: запрос на член„размера“в чем - то не структуры или объединения»

Когда я пытаюсь сделать

for (int a = 0; a < [listingOfViews count]; a++)
{
[listingOfViews objectAtIndex:a].size.height = ...
}
Задан 26/08/2009 в 23:12
источник пользователем
На других языках...                            


2 ответов

голоса
0

Что вы имеете в виду:

[listingOfViews replaceObjectAtIndex:a withObject:defaultViewStructure];

Но это будет крах при попытке поставить эти неинициализированные указатели tempView в массив. Что вы на самом деле пытаетесь сделать здесь? Я думаю, что это может быть время, чтобы сделать шаг назад и начать с основами Objective-C. Похоже, что вы пытаетесь концепции порта C ++ непосредственно в ObjC, и они делают вещи совсем по-другому.

Вы можете начать с программирования в Objective-C , а затем , вероятно , какао Программирование для Mac OS X . (Последнее Mac на основе, а не iPhone, но это по - прежнему лучшая отправная точка.)

Ответил 26/08/2009 в 23:23
источник пользователем

голоса
1

Для вашего второго вопроса:

for (int a = 0; a < [listingOfViews count]; a++)
{
    [listingOfViews objectAtIndex:a].size.height = ...
}

Там недоразумение здесь (а UIView не имеет -размер, он имеет -реперов, что включает в себя размер), в сочетании с чем-то, что на самом деле немного сложнее из-за очень запутанной точечной нотации они добавили в Obj-C 2 и к сожалению разбивка объектной модели, когда вы получаете на структуры. То, как вы делаете то, что вы пытаетесь сделать, это:

UIView *view = [listingOfViews objectAtIndex:a];
NSRect frame = [view frame];
frame.size.height = ...
[view setFrame:frame];

Есть способы, чтобы слегка уплотнить количество строк, но вы должны принести в NSRect-структуру, изменить его, а затем установить его обратно. Вы не можете изменять высоту в один вызов на большинстве взглядов.

Ответил 26/08/2009 в 23:46
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more