我正在使用以下代码将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
那么这里发生了什么?是否有另一种方法来创建包含所有数据的文件?
答案 0 :(得分:1)
您无法写入应用程序包,因为它是只读的。将cert.p12文件写入Documents文件夹。 (我猜你的应用程序包中已有一个cert.p12文件,其大小为3008.你是否从writeToFile检查BOOL返回:?)