访问不同类的 ivar 的首选方法是什么?
应用委托(delegate)类
假设我想从另一个 UIViewController 类中的 Application Delegate 类访问根 Controller (@synthesized 为 rootController)。我在某处读到,您从 Application Delegate 类访问 ivar 与访问其他 ivar 不同。
普通类
如果我想从另一个 UIViewController 类访问一些 ivar。我想在 A 类中访问包含名称列表 (NSArray)(@synthesized 作为名称)的 ivar,并从 B 类访问它们。
ivar 具有默认访问权限( protected )。
也许你可以给我指一个解释如何访问 ivars 的好教程。
最佳答案
应用程序委托(delegate)是一个单例,因此您可以从任何地方访问这些属性。
在“普通”类的情况下,假设您不想使其成为单例,您通常会使用委托(delegate)模式。这意味着 A 类成为 B 类的委托(delegate),B 类可以调用 A 类将实现的方法,这就是 UITableViews 如何与 DataSource 委托(delegate)一起工作。
这仅在您只需要从另一个类访问这些属性时才有效(代理不支持多代理,否则我会将您的数据封装在任何类都可以访问的模型中。
关于objective-c - iOS Objective-C 访问来自不同类的 ivars,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6185614/