2016-09-08 1 views
2
NSString *mp3FileName = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, 
                    NSUserDomainMask, 
                    YES) lastObject] 
          stringByAppendingPathComponent:@"spring123.mp3"]; 
    NSLog(@"mp3 data %@",mp3FileName); 

    NSData *mp3Data = [NSData dataWithContentsOfFile:mp3FileName]; 
    NSLog(@"mp3 data %@",mp3Data); 

Cela me donne dans le journal: les données mp3 <>NSData null lorsque le fichier de charge à partir du répertoire de documents

Quelle est l'erreur faite par moi? Que faire pour convertir ce fichier NSData? Je veux envoyer ceci dans Email.

+1

1. Vérifiez si le chemin du fichier mp3 est correct. 2. La désérialisation d'un objet volumineux peut prendre un certain temps – azimov

+0

où votre fichier est le bundle principal ou les actifs. –

+0

J'écrivais un fichier depuis le bundle vers le répertoire du document et je le récupérais. Le nom du fichier est là mais la taille est 0 donc il était nul. puis utilisez dispatch_async et le problème résolu, merci à tous –

Répondre

1

D'abord, vous devez vérifier le fichier existe au chemin

BOOL isFileExists = [[NSFileManager defaultManager] fileExistsAtPath:filePath]; 

Si oui, alors que dataWithContentsOfFile: crée et renvoie les données objet sinon il retourne nul.