Je voudrais accéder à certaines valeurs d'un CFMutableDictionaryRef et ensuite faire quelques maths dessus. En utilisant le code ci-dessous, j'ai réussi à imprimer certaines propriétés de ma batterie. Je suis également capable d'imprimer des valeurs uniques (bien que, ce faisant, j'obtiens un avertissement : type de récepteur invalide: CFMutableDictionaryRef).Obtenir les valeurs de CFMutableDictionaryRef
Ensuite, j'essaie de convertir les valeurs de chaîne en NSNumber, puis les bogues du programme. Il me donne quelque chose comme sélecteur non reconnu envoyé à l'instance 0x5d65f70 Toute aide?
CFMutableDictionaryRef matching , properties = NULL;
io_registry_entry_t entry = 0;
matching = IOServiceMatching("IOPMPowerSource");
//matching = IOServiceNameMatching("AppleSmartBattery");
entry = IOServiceGetMatchingService(kIOMasterPortDefault , matching);
IORegistryEntryCreateCFProperties(entry , &properties , NULL , 0);
NSLog(@"%@" , properties);
NSString * voltage = [properties objectForKey:@"Voltage"];
NSString * currentCapacity = [properties objectForKey:@"CurrentCapacity"];
NSNumberFormatter * f = [[NSNumberFormatter alloc] init];
[f setNumberStyle:NSNumberFormatterDecimalStyle];
NSNumber * myNumber = [f numberFromString:voltage];
[f release];
CFRelease(properties);
IOObjectRelease(entry);