0

我在运行时遇到问题,说

-[__NSCFString _isResizable]:无法识别的选择器发送到实例 0x6a86a80 2012-10-24 14:21:08.070 糖尿病食物指南 [767:c07] *由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:'-[__NSCFString _isResizable]:无法识别的选择器发送到实例 0x6a86a80'

我认为问题在于代码的这些部分:

/*ViewControllerManual.m*/
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    NSDictionary* tier = (NSDictionary*)sender;
    if ([segue.identifier isEqualToString:@"loopbackSegue"]) {
        ViewControllerManual* nextController = segue.destinationViewController;
        nextController.items = [tier objectForKey:@"items"];
        nextController.title = [tier objectForKey:@"name"];
    } else if ([segue.identifier isEqualToString:@"detailSegue"]) {
        DetailsController* nextController = segue.destinationViewController;
        nextController.name = [tier objectForKey:@"name"];
        nextController.foodPicture = [tier objectForKey:@"foodPicture"];
        nextController.tablePicture = [tier objectForKey:@"tablePicture"];
    }
}

/*DetailsController.m*/

- (void)viewDidLoad {
    [super viewDidLoad];
    nameLbl.text = self.name;
    foodPic.image = self.foodPicture;
    tablePic.image = self.tablePicture;
    }

foodPic 和 tablePic 都是 UIImageViews,并且 foodPic 是使用cell.imageView.image = [UIImage imageNamed:[[self.items objectAtIndex:indexPath.row] objectForKey:@"foodPicture"]]; 从包含图像路径的数组中调用来设置的。该错误仅在加载类 DetailsController 的视图时发生。如果我需要提供更多信息,请随时告诉我。

4

1 回答 1

0

似乎您在这里返回 NSStrings:

nextController.foodPicture = [tier objectForKey:@"foodPicture"];
nextController.tablePicture = [tier objectForKey:@"tablePicture"];

接着

// UIImage* = NSString*
nextController.foodPicture = [tier objectForKey:@"foodPicture"];
nextController.tablePicture = [tier objectForKey:@"tablePicture"];

或者你已经过度释放了一些东西。但从您的描述来看,将 NSString 分配给 UIImage 的问题可能更大。

于 2012-10-24T18:53:51.210 回答