我在这个问题上坐了好几个小时,现在我失明了。 ; - )
我这里有这个代码:
- (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
我只是不明白!
答案 0 :(得分:3)
代码imageFilePath = [NSString stringWithString: path];
为您提供了一个您不拥有的对象,因此您不能依赖于代码中稍后可用的对象。将其更改为:
imageFilePath = [[NSString alloc] initWithString: path];
你应该没事。