2012-06-04 4 views
0

pense étrange et drôle qui se passecomportement étrange de Xcode 4.2

code:

-(void)saveFile 
{  
NSFileManager *fileMng = [NSFileManager defaultManager]; 
if(![fileMng fileExistsAtPath:self.appFilesPath]) 
{ 
    NSError *error = nil; 
    BOOL success = [fileMng createDirectoryAtPath:self.appFilesPath withIntermediateDirectories:YES attributes:nil error:&error]; 
    if(!success) 
    { 
     NSLog([error localizedDescription]); 
    } 
} 
NSLog([NSString stringWithFormat:@"%@",self.appFilesPath]); 
[fileMng createFileAtPath:self.fileFullPath contents:self.fileData attributes:nil]; 
[self.fileData writeToFile:self.fileFullPath atomically:YES]; 
} 

et cette ligne

NSLog([NSString stringWithFormat:@"%@",self.appFilesPath]); 

devrait me donner quelque chose comme ça

file://localhost/Users/user/Library/Application%20Support/iPhone%20Simulator/5.0/Applications/BF35B859-514B-45AA-8E3A-B2CE65BD82B6/Documents/AppFiles 

Directory AppFiles devrait être créé sous le répertoire ../Documents/, mais ce n'est pas là ...

et le NSLog me donne quelque chose comme ceci: fichier : // localhost/Utilisateurs/utilisateur/Bibliothèque/Application 瑳 楲 杮 楗 桴潆 浲 瑡: 敲 敬 獡 e 摡 䕤 瑮 楲 獥 牆 浯 楄 瑣 潩 慮 祲: 扯 敪 瑣 潆 䭲 祥: 汣 獡 s 獩 楋 摮 晏 汃 獡 㩳 氀 湥 瑧 h 畡 潴 敲 敬 獡 e 敳 佴 橢 捥㩴 潦 䭲 祥: 敲 潭 敶 扏 敪 瑣 潆 䭲 祥: 湩 整 敧 噲 污 敵 戀 潯 噬 污 敵 爀 浥 癯 䅥 汬 扏 敪 瑣 s 湩 瑩 猀 慨 敲 䥤 獮 慴 据 e 敲 楧 瑳 牥 敎睴 牯 䑫 晥 畡 瑬 䙳 牯 灁 䥰 㩄 挀 灯 y 摡 佤 橢 捥 㩴 洀 楡 䉮 湵 汤 e 畢 摮 敬 摉 湥 楴 楦 牥 椀 䕳 畱 污 潔 瑓 楲 杮: 桳 牡 摥 潃 普 杩 牵 瑡潩 n 潣 湵 牴 䑹 晥 畡 瑬 潆 ..few plus d'écrans de ce buisson .. 帴 㽻 椽 絩 8 筞 㴿 楩} ㅶ 䀶 㨰 帴 㽻 椽 絩 椸 ㈱ 䀀 䜢 佅 楐 數 偬 楯 瑮 "㽻 搽 絤㨰 㨰 㨰 㨰 㨰 㨰 㨰 牥 牥 牥 牥 牥 牥 牥 牥 牥 牥 牥 牥 ㅶ ㅶ ㅶ ㅶ ㅶ ㅶ ㅶ ㅶ ㅶ ㅶ ㅶ ㅶ ㅶ㰢 䕇 协 灵 潰 瑲 摥 楔 敬 敓 獴 敓 癲 牥 牐 硯 䑹 汥 来 瑡 㹥 "㍶ 䀶 㨰 笴 㴿 摤 㡽 ㉤ 椴 ㈳ 瘀 㘱 ぀ 㐺 㡀 ㅩ 2㉶ 䀸 㨰 帴 㽻 搽 絤 䤸 ㈱ ㅤ 椶㐲 瘀 ㈱ ぀ 㐺 癞 8 ㅀ 䀶 㨰 帴 㡶 ㅣ 2 筞 硟 捰 损 湯 敮 瑣 潩 彮 㵳} ㅀ 䀶 㨰 䀴 常 彻 䍟 剆 湵 潌 灯 紽 ㈱ 帀 彻 䍟 剆 湵 潌 灯 紽 䀸 㨰 4 筞彟 䙃 畒 䱮 潯 㵰} 癞 䀸 㨰 4 ㅀ 䀲 㨰 帴 㡶 瘀 〲 ぀ 㐺 㡀 ㅀ 䤲 㘱 䀀 㰢 华 慃 档 䑥 汥 来 瑡 㹥 "㉀ 䀸 㨰 䀴 笸 㴿 摤 ㅽ 2 㽻 搽 絤 㠲 ぀ 㐺㽻 搽 絤 常 ㉤4 㽻 ∽ 慬 楴 畴 敤 搢 氢 湯 楧 畴 敤 搢} upport/iPhone 貌 © ߈ imulator/5.0/Applications/CAF90A92-5B85-4FC0-8482-3702C3E98F8D/Documents/AppFiles

quand j'exécuter du code second temps, si la condition est omise, mais ../Documents/ répertoire est vide

来 瑡 㹥 "㉀ 䀸 - je veux dire wtf, la première fois quelque chose comme ça, redémarrer Xcode, mac did't aide, simulateur est prêt à l'anglais, il se trouvent également dans d'autres projets, réglage de clavier nationalisation des fourmis semble correct, donc vraiment je n'ai aucune idée de ce qui est mal

idées ?

Répondre

1

Vous ne pouvez pas simplement NSLog une chaîne. L'argument de chaîne qu'il prend est un format (comme dans printf) qui interpete spécialement. Dans votre cas, il est en train de lire la mémoire aléatoire parce que %20S signifie d'interpréter l'argument suivant comme pointeur sur chaîne à zéro terminal de caractères larges et l'imprimer aligné à droite dans 20 colonnes; et ils sont chinois car la plupart des Unicode sont occupés par des hiéroglyphes chinois.

Ceci est la bonne façon de le faire:

NSLog(@"%@", self.appFilesPath); 
+0

oui hamstergene qui est bon sur l'utilisation de NSLog, aussi j'ai pu déterminer la cause de mon problème (répertoire n'a pas été créé) la raison est l'utilisation de mauvaise fonction, retrive un chemin que je accidentellement utilisé - URLsForDirectory: inDomains: de NSFileManager quand je devrais utiliser NSSearchPathForDirectoriesInDomains – ypso