Uložení Odkazy na proměnné v NSMutableArray

hlasů
0

Já jsem hledal způsob, jak ukládat odkazy na proměnné uvnitř NSMutableArray. Jako proměnné se bude vytvořena dynamicky na základě toho, co uživatel zvolil, chci, aby bylo možné jednoduše třídit prostřednictvím tohoto pole a získat odkazy na tyto vytvořené proměnné. V případě, že je to důležité, já vytvoření projektu iPhone. Nicméně, když jsem se pokusil provést pomocí následující kód:

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

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

To mi dává tuto chybu: „Chyba: lvalue požadovány jako levý operand úkolu“

Nějaké nápady?

EDIT: Také jsem si tuto chybu: „Chyba: žádost o člena‚velikosti‘v něco, co není struktury nebo sjednocovací“

Když jsem se pokusit udělat

for (int a = 0; a < [listingOfViews count]; a++)
{
[listingOfViews objectAtIndex:a].size.height = ...
}
Položena 26/08/2009 v 23:12
zdroj uživatelem
V jiných jazycích...                            


2 odpovědí

hlasů
1

Na vaši druhou otázku:

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

Je tu nedorozumění (a UIView nemá Vel, má -frame, která zahrnuje velikosti), spojený s něčím, co je ve skutečnosti o něco složitější, protože k velmi matoucí bodového zápisu oni přidané Obj-C 2 a nešťastné členění objektový model, když se dostanete do structs. Tak, jak si to, co se snažíte udělat, je:

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

Existují způsoby, jak lehce kondenzují počet řádků, ale je třeba, aby přinesla s NSRect struct, upravit ji, a pak ji nastavit zpět. Nemůžete měnit výšku jednoho hovoru na největším počtem zhlédnutí.

Odpovězeno 26/08/2009 v 23:46
zdroj uživatelem

hlasů
0

Co máte na mysli, je:

[listingOfViews replaceObjectAtIndex:a withObject:defaultViewStructure];

Ale bude to selhání při pokusu dát ty neinicializované ukazatele tempView do pole. To, co se opravdu snaží dělat tady? Myslím, že to může být čas, aby krok zpět a začít se základy Objective-C. Vypadá to, že se snažíte portu C ++ koncepty přímo do ObjC a dělají věci úplně jinak.

Možná budete chtít začít s Programování v Objective-C , a pak se pravděpodobně Cocoa programování pro Mac OS X . (Ta je Mac-založené spíše než iPhone, ale je to stále nejlepší výchozí bod).

Odpovězeno 26/08/2009 v 23:23
zdroj uživatelem

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