![]() |
1
2
首先,你的直觉似乎是错的,你是对的。如前所述,模型存储在视图控制器中。那是个坏主意。这样做违反了模型-视图-控制器范式,这使得代码很难维护。 所以你现在需要做的是把你的模型放在一个单独的对象或对象树中,或者更好地使用CoreData,这在内存管理方面也很好。 当您想要使用CoreData时,您应该查看UIFetchedResultsController类,您将使用它从managedObjectContext获取对象,managedObjectContext将是您的模型。 在“表视图-详细信息编辑”示例中,您将执行以下操作:
您得到的是模型(CoreData的managedObjectContext)、控制器(rootViewController和detailViewController)和视图的清晰分离。如果现在使用详细视图编辑条目,则会通过NSFetchedResultsController通知rootViewController并自动更新。您还得到的是,在应用程序中的viewControllers之间没有强引用。 顺便说一句,您在应用程序的委托中设置了CoreData。在Xcode和ADC中有很多样板代码。查看Recipies应用程序[1],其中使用了我刚才描述的方法。苹果开发者网站上也有一些关于CoreData的视频。 http://developer.apple.com/iphone/library/samplecode/iPhoneCoreDataRecipes/Introduction/Intro.html 核心数据接收 |
![]() |
Martin sku · 在目标C中打印时间 3 年前 |
![]() |
Vinod prajapat · 如何更新数组的最后一个元素? 3 年前 |
![]() |
subin272 · 修复iOS中的多个按钮单击事件? 7 年前 |
![]() |
James Chan · 如何使用锁定/解锁? 7 年前 |
![]() |
Josh F. · NSBundle mainBundle返回零 7 年前 |