Я новичок в Objective-C, поэтому, возможно, я неправильно сформулировал это.Я создал класс «Сообщение» и создаю его экземпляр следующим образом:
Message *newmsg=[[Message alloc]init];
Когда я получаю доступ к содержимому newmsg
, я делаю это (например):
NSString *junk=((Message *)[globDat.allMsgs objectAtIndex:i]).text
Я хочу поменять местами содержимое двух экземпляров.Тем более, что в классе несколько предметов.Например, идея заключается в следующем (псевдокод)
Message *TopMsg=[[Message alloc]init];
Message *BottomMsg=[[Message alloc]init];
Message *tmpmsg=[[Message alloc]init];
...
//enter values for TopMsg.xyz and BottomMsg.xyz
....
//swap
tmpmsg=TopMsg;
TopMsg=BottomMsg;
BottomMsg=tmpmsg;
РЕДАКТИРОВАТЬ: я пропустил немного об использовании массива в Singleton для хранения нескольких экземпляров сообщения.Вы можете увидеть это в примере о доступе к содержимому.
Так что просто замена указателей дает мне ошибку: «Выражение не присваивается»
Я пробовал это (где allMsgs - этоМассив в синглтоне):
GlobalData *globDat=[GlobalData getSingleton];
Message *newmsg=[[Message alloc]init];
newmsg=[globDat.allMsgs objectAtIndex:0];
[globDat.allMsgs objectAtIndex:0]=[globDat.allMsgs objectAtIndex:1]; //<--ERROR
и это:
GlobalData *globDat=[GlobalData getSingleton];
Message *newmsg=[[Message alloc]init];
newmsg=[globDat.allMsgs objectAtIndex:0];
(Message *)[globDat.allMsgs objectAtIndex:0]=(Message *)[globDat.allMsgs objectAtIndex:1]; //<--ERROR
Как я могу это сделать?