Вытащить NSArray из NSMutableArray - PullRequest
1 голос
/ 24 июня 2011

У меня есть NSMutableArray, который хранит список других массивов.И когда я запускаю код.

NSLog(@"%@",[[appDelegate teamRoster]objectAtIndex:[indexPath.row]class])

Он возвращается и говорит мне, что я смотрю на массив,

однако, когда я пытаюсь сделать следующее

[selectedRowerView tempArray] = [[appDelegate teamRoster]objectAtIndex:[indexPath.row]];

Ошибка программы.У кого-нибудь есть идеи, почему это может происходить?

Ответы [ 2 ]

3 голосов
/ 24 июня 2011

Вы должны понимать, что [selectedRowerView tempArray] на самом деле команда / сообщение, которое отправляется.В эквиваленте C ++ вы звоните selectedRowerView->tempArray() = ....Что не имеет логического смысла, потому что вы не можете назначить функцию.

То, что вы пытаетесь сделать, это установить tempArray.Если у вас есть правильная установка сеттеров / геттеров, вы можете просто запустить: selectedRowerView.tempArray = ...;

Просто убедитесь, что у tempArray есть @property и @synthesize 'd.

1 голос
/ 24 июня 2011

Как насчет этого?

selectedRowerView.tempArray = [[appDelegate teamRoster]objectAtIndex:[indexPath.row]];

… при условии, что tempArray является синтезированным свойством à la

@property (nonatomic, readwrite, retain) NSArray *tempArray;

@synthesize tempArray;

Пояснение:

selectedRowerView.tempArray = …;

внутренне обрабатывается в

[selectedRowerView setTempArray:…];

, который является установочным методом .

В то время как

selectedRowerView.tempArray;

внутренне обрабатывается в

[selectedRowerView tempArray];

, который является методом получения .

Тонкое, но важное отличие.
Значение foo.bar зависит от самого контекста (включающего выражения), в котором он используется.

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