代码之家  ›  专栏  ›  技术社区  ›  krisdyson

iphonemvc应用程序:我应该把模型放在哪里?

  •  1
  • krisdyson  · 技术社区  · 16 年前

    我对iPhone的开发还很陌生。

    我正在建立一个应用程序,它有多个视图和控制器。只有一种型号。

    我需要在所有控制器之间共享模型;因此,我在App Delegate头文件中实例化了模型:

    @interface MyAppDelegate
    (...snip...)
    @property (nonatomic, retain) CalcModel *model;
    

    在控制器内部,我尝试引用模型,如下所示:

    CalcModel* model = [[[UIApplication sharedApplication] delegate] model];
    

    问题是编译器说在协议中找不到'-model'

    这可能是因为delegate字段返回协议类型,而不是具体的MyAppDelegate类型。。。那么,我是否应该将[[UIApplication sharedApplication]delegate]强制转换为MyAppDelegate,以便访问模型属性?如果是,怎么做?

    非常感谢你的帮助

    2 回复  |  直到 16 年前
        1
  •  0
  •   Joe    16 年前

    是的,投吧。我定义了一个宏,将其封装到一个简单的调用中,使其更简单。

    http://www.bit-101.com/blog/?p=1969

    (我们只是将模型本身实现为单例,并使用视图中的KVO来监听对属性的更改。)

        2
  •  0
  •   Swapnil Luktuke    16 年前

    CalcModel* model = (MyAppDelegate *)[[[UIApplication sharedApplication] delegate] model];
    

    您必须在appdelegate.m中实例化模型

    推荐文章