【发布时间】:2009-05-19 19:54:04
【问题描述】:
我正在研究 UIImageView 的一个子类,我需要做的一件事是使用 initWithImage: 消息初始化对象时创建一个“副本”。
我一定是在混淆某些东西,因为我看不出这里有什么不工作..
- (id)initWithImage:(UIImage *)image {
[image retain];
if (self = [super initWithImage:image]) {
if (!maskImage) {
maskImage = [UIImage imageWithCGImage:[image CGImage]];
if (maskImage != nil) {
NSLog(@"Made mask image");
} else {
NSLog(@"Failed");
}
//maskImage = [UIImage imageNamed:@"image.png"];
}
}
[image release];
return self;
}
当我构建它时没有错误,并且似乎确实创建了 maskimage(我没有收到失败消息)。但是,如果我取消注释从 png 分配的行,它会起作用。
我错过了什么?
谢谢!
【问题讨论】:
-
从这个问题中不清楚您遇到了什么问题。 “不工作”是什么意思?
-
好的,抱歉,我在调试问题时遇到了麻烦。我有一个 uiimage 类别,它会更改掩码图像中的像素值。这使用注释掉的 maskImage 行但不使用 maskImage = [UIImage imageWithCGImage:[image CGImage]];我怀疑实际上导致此问题的类别,因为我遇到的崩溃与错误的内存访问有关。
标签: iphone cocoa-touch uikit uiimageview