Значение больше не находится в словаре, но все еще находится в памяти, и value
все еще указывает на него.Попробуйте:
struct session *value = (struct session *)CFDictionaryGetValue(cfmdict,tiId);
NSLog(@"The value is %d and %c", value->a, value->c);
CFDictionaryRemoveValue(cfmdict,tiId);
value = (struct session *)CFDictionaryGetValue(cfmdict,tiId);
NSLog(@"The value is %d and %c", value->a, value->c);
и посмотрите, что получится.