所以,我试图在我的Brain类中创建一个共享方法,它将检查按下按钮上的标签(项目按钮位于不同的类中),然后相应地将一个图像添加到ShoppingList视图中,这意味着添加的顺序(添加的第一张图像位于0,0位置,第二位置位于80,0等位置。)
我有早餐课,代表早餐食材,我想在另一个名为ShoppingList的视图中添加一张茶的照片。
我在Brain中编写了一个方法,将一个图像添加到imageView并返回一个imageView,然后将其本地传递给按下的按钮。
它构建但是当我按下Tea按钮时,应用程序崩溃。
这是我的代码:
Brain.h
@interface Brain : NSObject {
@private
UIImage *image;
UIImageView *imageView;
}
@property (retain) UIImageView *imageView;
@property (retain) UIImage *image;
- (id)performOperation:(NSString *)operation;
@end
Brain.m
@implementation Brain
@synthesize imageView;
@synthesize image;
- (UIImageView *)performOperation:(NSString *)operation
{
if ([operation isEqual:@"Tea"]) {
image = [UIImage imageNamed:@"Tea_photo.jpg"];
imageView = [[UIImageView alloc]initWithImage:image];
imageView.frame = CGRectMake(0, 0, 80, 80);
return imageView;
//[shoppingList.view addSubview:imageView];
//[imageView release];
}
else return 0;
}
@end
Breakfast.h
@interface Breakfast : UIViewController {
IBOutlet ShoppingList *shoppingList;
Brain *brain;
}
- (IBAction)addItemToShoppingList:(UIButton *)sender;
- (IBAction)goToShoppingList;
- (IBAction)goBack;
@end
Breakfast.m
@implementation Breakfast
- (Brain *)brain
{
if (!brain) brain = [[Brain alloc] init];
return brain;
}
- (IBAction)addItemToShoppingList:(UIButton *)sender
{
NSString *operation = [[sender titleLabel] text];
UIImageView *imageView = [[self brain] performOperation:operation];
[shoppingList.view addSubview:self.brain.imageView];
//UIImageView *imageView = [[UIImageView alloc]initWithImage:image];
//imageView.frame = CGRectMake(0, 0, 80, 80);
//[shoppingList.view addSubview:imageView];
//[imageView release];
}
- (IBAction)goToShoppingList
{
[self presentModalViewController:shoppingList animated:NO];
}
- (IBAction)goBack
{
[self dismissModalViewControllerAnimated:NO];
}
@end
请帮助,这是我的论文。
答案 0 :(得分:1)
IBOutlet ShoppingList *shoppingList;
为何选择此IBOutlet
?不是ShoppingList
您创建的类。这并不能解决你的崩溃问题。为此你需要发布崩溃日志......
在您的代码中,我看不到allocation
的任何shoppingList
,所以您如何能够使用它。您需要allocate
类Brain
中的对象,否则它没有任何意义。
答案 1 :(得分:0)
我没有查看你的代码。但根据您的描述,我建议您创建一个协议