2013-09-11 3 views
1

Я пишу объект NSData в файл, используя этот код:Потеря байтов файл записывается

NSString *thePath = [[NSBundle mainBundle] pathForResource:@"cert" ofType:@"p12"]; 
NSData *data = [NSData dataFromBase64String:cert]; 
NSLog(@"Data length is %i", [data length]); 
[data writeToFile:thePath atomically:YES]; //doesn't matter atomically YES or NO, same result 

И печатает

длина данных 3078

Однако, когда я читаю полученный файл, мне не хватает 70 байтов!

NSString *thePath = [[NSBundle mainBundle] pathForResource:@"cert" ofType:@"p12"]; 
NSData *PKCS12Data = [[NSData alloc] initWithContentsOfFile:thePath]; 
NSLog(@"PKCS12Data length is %i", [PKCS12Data length]); 

, которая печатает:

длина PKCS12Data составляет 3008

Так что же здесь происходит? Есть ли другой способ создать файл со всеми его данными?

ответ

1

Вы не можете писать в приложение, поскольку оно доступно только для чтения. Запишите файлы cert.p12 в папку «Документы». (Я бы предположил, что у вас уже есть файл cert.p12 в вашем комплекте приложений и его размер равен 3008. Вы проверили возврат BOOL из writeToFile :?)

+0

Отметьте это как правильный ответ, потому что теперь оба объекта NSData одинаковы размер. Благодаря! – GabCas

Смежные вопросы