objective-c - iOS Objective-C 访问来自不同类的 ivars

标签 objective-c cocoa-touch ios instance-variables

访问不同类的 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/

相关文章:

ios - 从文本字段/ TextView 中获取文本

iphone - 我应该如何保护 iOS 中的 SQLite 数据库?

objective-c - 如何为 iPhone 6,6+ 屏幕分辨率开发或迁移应用程序?

objective-c - 在 C 中的结构中扩展数组

ios - 如果我想确保我返回的 NSMutableArray 仅被视为 NSArray,那么复制我应该使用的是什么? Actor ?

iphone - 调整 UIView 的大小

iphone - 关于 JSON 日期转换错误

ios - 设置标签文本等于变量

ios - 遵循相反的路径

ios - 上下 PageViewController