Donc, j'essaie de faire une méthode partagée dans ma classe Brain qui va vérifier l'étiquette sur un bouton enfoncé (les boutons des éléments sont dans différentes classes) et ensuite ajouter une image à une vue ShoppingList en tenant compte de l'ordre d'ajout (la première image ajoutée va à la position 0,0, la seconde à la position 80,0 etc.).Comment appeler une méthode d'une classe différente?
J'ai un cours de petit déjeuner qui représente les ingrédients du petit déjeuner et je veux ajouter une photo d'un thé à une autre vue appelée ShoppingList.
J'ai écrit une méthode dans Brain qui ajoute une image à un imageView et renvoie un imageView qui est ensuite passé localement au bouton pressé.
Il construit mais quand j'appuie sur le bouton Thé, l'application se bloque.
Voici mon code:
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
S'IL VOUS PLAÎT AIDER, son pour ma thèse.
Alors, quelle est la question? –
Pouvez-vous publier la pile d'appels à partir du plantage (sous Afficher la console dans XCode)? –
Je pense que la question est "pourquoi est-ce qu'il plantage?" –