Просто установив значение класса A из класса B в target-c
В Objective-C я хочу установить synthesized (assigned)
атрибут в классе Compass
из класса B
Это мой код...
for(Compass * ind in CompassList){
if([[(Compass*)ind showAnalog] isEqualToString:str]){
ind.analogValue=11.0;
}
}
Тем не менее, я получаю эту ошибку...
Request for member analogValue in something not a structure or union.
Мне удалось избежать этой ошибки, используя мой собственный установщик и называя его как [ind updateValue:11.0];
, Однако, когда я называю синтезированный геттер позже, как [(Compass*)currentDevice analogValue];
в другом классе я получаю следующее исключение...
'NSInvalidArgumentException': [Compass digitalValue]: unrecognized selector sent to instance 0x613ca20
Может кто-нибудь, пожалуйста, помогите мне понять, как я должен делать это.
1 ответ
Вы быстро перечислите индикаторный список как тип Indicator
затем на одну строку ниже вы приводите его как Compass
, Если это не опечатка, и все значения имеют тип Compass
затем измените код для чтения
for(Compass * compass in indicatorList){
if([[compass showAnalog] isEqualToString:str]){
compass.analogValue=11.0;
}
}
Теперь для вас актуальная проблема, вы не опубликовали код, связанный с этой проблемой. Я предполагаю, что причина в некотором коде, который showAnalog
вызывает который по очереди вызывает [(Compass*)currentDevice analogValue];
, Все это может быть связано с неправильным приведением или неполным Compass
учебный класс.