m_cAppIdMap является объектом словаря.Я хочу выполнить итерацию по словарю, чтобы получить и удалить значение pEvent.wTimerId - это короткое целое число без знака, которое хранится в словаре как ключ.
if(unsigned short* key in m_cAppIdMap) //error:Expected expression before 'unsigned'
{
(void)[self findAndRemoveEvent:pEvent];
(void)CFDictionaryRemoveValue(m_cAppIdMap,&wTimerId);
free(pEvent);
bReturn = YES;
}
При попытке выполнить итерацию я получаю сообщение об ошибкечерез цикл.
EDITED
-(BOOL)KillTimer:(unsigned short)wTimerId
{
stRs232Timer* pEvent;
BOOL bReturn=FALSE;
theLock = [[NSLock alloc]init];
if ([theLock tryLock]) {
// if ( m_cAppIdMap.Lookup(wTimerId,pEvent) )
// {
// (void)findAndRemoveEvent(pEvent); // remove from event queue
// (void)m_cAppIdMap.RemoveKey(wTimerId); // remove from app map
for(wTimerId in m_cAppIdMap)
{
(void)[self findAndRemoveEvent:pEvent];
(void)CFDictionaryRemoveValue(m_cAppIdMap,&wTimerId);
free(pEvent);
bReturn = YES;
}
[theLock unlock];
}
return bReturn;
}
Я получаю сообщение об ошибке в этом коде «элемент селектора не имеет допустимого типа объекта».Мне нужно искать wTimerId(key)
в m_cAppIdMap.Это то, что я делаю правильно. Комментированные строки над циклом for - это реализация того же кода в cpp.Я не могу сделать ту же логику здесь, в Задаче С.