0

私は何時間もこの問題に取り組んでいますが、今は盲目です。;-)

ここにこのコードがあります:

- (id) initWithImage:(UIImageView*)imageView andPath: (NSString*) path{

   [super init];
   drawImage = imageView;
   imageFilePath = [NSString stringWithString: path];
   NSLog(@"fath: %@", imageFilePath);
   return self;
}

    NSData *imageData = [NSData dataWithData:UIImagePNGRepresentation(drawImage.image)];   
    NSString *docsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
    NSString *path = [docsDirectory stringByAppendingPathComponent:@"img.data"];
    NSLog(@"path: %@", path);
    [imageData writeToFile:path atomically:YES];

このコードは機能しますが、アプリに変更
[imageData writeToFile:path atomically:YES];
すると
[imageData writeToFile:imageFilePath atomically:YES];
クラッシュします。
しかし、文字列は完全に同じに見えます:

2011-06-01 10:38:10.178 L3T[3756:207] fath: /Users/max/Library/Application Support/iPhone Simulator/4.3/Applications/A73945CF-9FD0-46E9-A16B-9C0EFC924B0F/Documents/img.data
2011-06-01 10:38:11.864 L3T[3756:207] path: /Users/max/Library/Application Support/iPhone Simulator/4.3/Applications/A73945CF-9FD0-46E9-A16B-9C0EFC924B0F/Documents/img.data

私はそれを理解していません!

4

1 に答える 1

3

コードimageFilePath = [NSString stringWithString: path];は、所有していないオブジェクトを提供するため、後でコードで使用できることに依存することはできません。これを次のように変更します。

imageFilePath = [[NSString alloc] initWithString: path];

そしてあなたは大丈夫なはずです。

于 2011-06-01T08:59:13.987 に答える