2013-07-11 3 views
4

je vérifie si le répertoire existe, mais je reçois un avertissemententier Incompatible à la conversion de pointeur

entier Incompatible à la conversion de pointeur envoyer « BOOL » (alias « signé char ») au paramètre de type « BOOL * '(alias' signed char *)

BOOL isFile ; 
isFile = [[NSFileManager defaultManager] fileExistsAtPath:[dirurl path] isDirectory:YES]; 

pourquoi dois-je obtenir cet avertissement et comment le résoudre

+4

De l'erreur est ressemble à vous déclarez les 'isFile' comme 'BOOL * isFile;' en faisant ainsi un pointeur. – rckoenes

+1

Non, il semble qu'il a besoin d'un pointeur au lieu d'une valeur, ce qu'il a maintenant. –

Répondre

9

Utilisez comme ceci:

BOOL isDir; 
BOOL isFileExists; 

isFileExists = [[NSFileManager defaultManager] fileExistsAtPath:[dirurl path] isDirectory:&isDir]; 
if (isDir) {...} 

exemple des documents officiels developer.apple.com:

NSArray *subpaths; 
BOOL isDir; 

NSArray *paths = NSSearchPathForDirectoriesInDomains 
        (NSLibraryDirectory, NSUserDomainMask, YES); 

if ([paths count] == 1) { 

    NSFileManager *fileManager = [[NSFileManager alloc] init]; 
    NSString *fontPath = [[paths objectAtIndex:0] stringByAppendingPathComponent:@"Fonts"]; 

    if ([fileManager fileExistsAtPath:fontPath isDirectory:&isDir] && isDir) { 
     subpaths = [fileManager subpathsAtPath:fontPath]; 
// ... 
[fileManager release]; 
+0

Oui cela a fonctionné, merci beaucoup, et merci pour l'explication – skcrpk

+0

vous êtes les bienvenus) – torip3ng

+1

Merci beaucoup. C'est une implémentation si mystérieuse. Je jure qu'ils font des choses comme ça pour rendre nos vies misérables. –

Questions connexes