似乎无法摆脱警告。警告是: 'UIImage'可能无法响应'-scaleToSize'
在@implmentation MyViewController之上我有@implementation:
@implementation UIImage (scale)
-(UIImage*)scaleToSize:(CGSize)size
{
UIGraphicsBeginImageContext(size);
[self drawInRect:CGRectMake(0, 0, size.width, size.height)];
UIImage* scaledImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return scaledImage;
}
@end
然后我有MyViewController实现
@implementation TodayNewsTableViewController
@synthesize dataList;
......
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *MainNewsCellIdentifier = @"MainNewsCellIdentifier";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier: MainNewsCellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier: MainNewsCellIdentifier] autorelease];
}
NSUInteger row = [indexPath row];
NSDictionary *stream = (NSDictionary *) [dataList objectAtIndex:row];
NSString *title = [stream valueForKey:@"title"];
if( ! [title isKindOfClass:[NSString class]] )
{
cell.textLabel.text = @"";
}
else
{
cell.textLabel.text = title;
}
cell.textLabel.numberOfLines = 2;
cell.textLabel.font =[UIFont systemFontOfSize:10];
cell.detailTextLabel.numberOfLines = 1;
cell.detailTextLabel.font= [UIFont systemFontOfSize:8];
cell.detailTextLabel.text = [stream valueForKey:@"created"];
NSString *i = [NSString stringWithFormat:@"http://www.mywebsite.co.uk/images/%@", [stream valueForKey:@"image"]];
NSData *imageURL = [[NSData alloc] initWithContentsOfURL:[NSURL URLWithString:i]];
UIImage *newsImage = [[UIImage alloc] initWithData:imageURL] ;
UIImage *scaledImage = [newsImage scaleToSize:CGSizeMake(50.0f, 50.0f)]; // warning is appearing here.
cell.imageView.image = scaledImage;
[imageURL release];
[newsImage release];
return cell;
}
感谢您的提前时间。
帧
答案 0 :(得分:2)
要避免此警告,编译器必须“看到”您的自定义方法声明。所以你应该把
@interface UIImage (scale)
-(UIImage*)scaleToSize:(CGSize)size
@end
某处 - 要么对应相应的头文件,要么在同一个实现文件中,如果你不想在当前文件之外访问这个方法。