「img」は実際にはURLを含む文字列ですが、実際にはファイル名としても使用しています。
NSString *applicationDocumentsDir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
NSString *storePath = [applicationDocumentsDir stringByAppendingPathComponent:img];
NSURL *url = [NSURL URLWithString:img];
NSData *imageData = [NSData dataWithContentsOfURL:url];
[imageData writeToFile:storePath atomically:TRUE];
私のビューコントローラで私はこれを手に入れました:
UIImage *img = [[UIImage alloc] initWithContentsOfFile:self.initialImg];
if(img == nil) NSLog(@"image is nil");
[self.image setImage:img];
「initialImg」は、「img」と同じURLのNSStringです。また、「img」と「initialImg」をtest.pngなどの別の文字列に変更しましたが、これも機能しません。
「imageisnil」と出力されますが、なぜnilなのかわかりません...
編集:
今私は得た:
NSURL *url = [NSURL URLWithString:img];
NSData *imageData = [NSData dataWithContentsOfURL:url];
UIImage *uiImage=[UIImage imageWithData:imageData];
NSData *pngData = UIImagePNGRepresentation(uiImage);
NSString *documentsPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
NSString *filePath = [documentsPath stringByAppendingPathComponent:@"image.png"];
[pngData writeToFile:filePath atomically:YES];
そして、viewDidLoad関数の別のビューコントローラーでは、次のようになります。
UIImage *img = [[UIImage alloc] initWithContentsOfFile:@"image.png"];
if(img == nil) NSLog(@"image is nil");
[self.image setImage:img];
それでも「画像はゼロです」と表示され、URLを変更しましたが、正しいです