J'ai écrit une classe pour aider à sauvegarder et à charger des données par souci de persistance pour mon application iPhone mais j'ai un problème avec certains NSUIntegers que je traverse.Classe publique: Donne un pointeur à partir d'un entier
Fondamentalement, j'ai le code pour utiliser des pointeurs, mais finalement il doit commencer par être une valeur réelle droite? Donc, je reçois cette erreur
warning: passing argument 1 of 'getSaveWithCampaign:andLevel:' makes pointer from integer without a cast
Mon code est présenté comme tel.
(persistance est le nom de la classe)
NSDictionary *saveData = [Persistence getSaveWithCampaign:currentCampaign andLevel:[indexPath row]];
Voilà Persistence.m
#import "Persistence.h"
@implementation Persistence
+ (NSString *)dataFilePath
{
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
return [documentsDirectory stringByAppendingPathComponent:kSaveFilename];
}
+ (NSDictionary *)getSaveWithCampaign:(NSUInteger *)campaign andLevel:(NSUInteger *)level
{
NSString *filePath = [self dataFilePath];
if([[NSFileManager defaultManager] fileExistsAtPath:filePath])
{
NSDictionary *saveData = [[NSDictionary alloc] initWithContentsOfFile:filePath];
NSString *campaignAndLevelKey = [self makeCampaign:campaign andLevelKey:level];
NSDictionary *campaignAndLevelData = [saveData objectForKey:campaignAndLevelKey];
[saveData release];
return campaignAndLevelData;
}
else
{
return nil;
}
}
+ (NSString *)makeCampaign:(NSUInteger *)campaign andLevelKey:(NSUInteger *)level
{
return [[NSString stringWithFormat:@"%d - ", campaign+1] stringByAppendingString:[NSString stringWithFormat:@"%d", level+1]];
}
@end
Quel est le type de 'currentCampaign' dans l'appel de méthode? – Endemic
Veuillez nous indiquer la méthode dans laquelle vous appelez 'getSaveWithCampaign'. –
currentCampaign est un NSUInteger et est déclaré et synthétisé. – meridimus