我想将生成的二维码存储在我的应用程序文件夹中。然后将其用作 UITableView 中单元格的附件视图。
-(void)generateQRCode
{
NSError *err;
NSMutableDictionary *dict = [[NSMutableDictionary alloc]init];
[dict setValue:[Utility customerID] forKey:@"customerID"];
[dict setValue:serverPath.text forKey:@"serverPath"];
NSData *json = [NSJSONSerialization dataWithJSONObject:dict options:0 error:&err];
NSString *jsonString = [[NSString alloc] initWithData:json encoding:NSISOLatin1StringEncoding];
NSData *data = [jsonString dataUsingEncoding:NSISOLatin1StringEncoding];
CIFilter *filter = [CIFilter filterWithName:@"CIQRCodeGenerator"];
[filter setValue:data forKey:@"inputMessage"];
[filter setValue:@"Q" forKey:@"inputCorrectionLevel"];
qrcodeImage = filter.outputImage;
_imgQRCode.image = [UIImage imageWithCIImage:qrcodeImage];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentPaths = [paths objectAtIndex:0];
filepath = [documentPaths stringByAppendingString:@"qrcodeImage.png"];
NSData *pngData = UIImagePNGRepresentation(_imgQRCode.image);
[pngData writeToFile:filepath atomically:YES];
}
此功能将返回文档目录的路径。
func getDocumentsDirectory() -> NSString {
let paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)
let documentsDirectory = paths[0]
return documentsDirectory}
您可以使用以下代码将图像保存在文档中:
if let image = UIImage(named: "example.png") {
if let data = UIImagePNGRepresentation(image) {
let filename = getDocumentsDirectory().stringByAppendingPathComponent("copy.png")
data.writeToFile(filename, atomically: true)
}}
保存图像后,您可以重新加载表视图并配置单元格。如果您不知道如何配置附件视图,请告诉我。