2011-04-20 35 views
0

为了序言,我对Obj-C非常陌生,但我在C++和Java中有一些OOP经验。在我的MVC中传递模型

因此,我已经开始阅读和学习iPhone开发的Obj-C,现在我试图制作我的第一个MVC程序。

基本上我所做的是创建一个按钮,现在我希望我的控制器在按下按钮时向我的模型发送消息。我已验证控制器方法已成功调用,但即时无法从控制器成功发送消息。我不知道为什么,但功能(void)myfunction未执行。

我的控制器被称为TestViewController,我的模型被称为Brain

//TestViewController.m 
#import "TestViewController.h" 

@implementation TestViewController 

- (Brain *)mybrain 
{ 
    if (!mybrain)mybrain = [[Brain alloc] init]; 
    NSLog(@"mybrain is initialized.."); 
    return mybrain; 
} 


- (IBAction)buttonPressed:(UIButton *)sender 
{ 
    NSLog(@"Controller has been messaged!"); 
    [mybrain myfunction]; 
} 


//Brain.m 
#import "Brain.h" 
@implementation Brain 

-(void)myfunction 
{ 
    NSLog(@"Model has been messaged!"); 
    return; 
} 

@end 
+0

你的意思是你看到“Controller has been messaged!”在您的日志中,但不是“模型已被发送!”?或者你没有看到任何消息? – MusiGenesis 2011-04-20 20:44:56

+0

(脑*)mybrain在哪里被叫? – 2011-04-20 20:48:00

+0

我看到“Controller has been messaged!”,但没有“Model has been messaged!”在我的日志中。 – CallMeRex 2011-04-20 20:49:55

回答

1

您是否保留myBrain对象?它看起来像这个代码是不完整的。我在代码示例中看到的第一件事情是,此时没有保留myBrain对象。所以它很有可能发生泄漏,并且你的消息是零,因此没有任何反应。

+0

似乎我忘了通过调用 - (Brain *)mybrain创建myBrain对象本身。我确实给消息零。 谢谢。 – CallMeRex 2011-04-20 21:10:11

+0

你失去了主意吗? – Arkiliknam 2012-07-23 15:13:27

相关问题