IPHONE 如何从其他类/视图控制器访问变量
Posted
技术标签:
【中文标题】IPHONE 如何从其他类/视图控制器访问变量【英文标题】:IPHONE How to access variables from other classes/viewcontrollers 【发布时间】:2010-08-04 13:55:38 【问题描述】:我有一个使用多个视图控制器的应用程序。在一个实例中,我需要在创建它的单独视图控制器中使用一个 int(int 生活)。我试过使用它,它在构建时抛出错误,声称未声明“生命”。我已经在导入声明 int 的视图控制器。我被困在这个上。
我将不胜感激。
【问题讨论】:
【参考方案1】:对实例变量使用属性或自定义 setter 和 getter。
【讨论】:
感谢您的即时回复!你能给我一个简单的例子来说明我如何使用 int 来做到这一点吗? - (int)getMyIntVariable return myIntVariable; 【参考方案2】:您可以使用应用程序委托将您需要的信息存储在应用程序的不同位置。
正确的方法是实现您自己的委托协议。有关此主题的最新讨论,请参阅pass a variable up the navigation stack
【讨论】:
环顾四周后,app delegate 看起来像是做这件事的地方。我是否只是将变量存储在 appdelegate.h 中,然后让它成为全局变量?? 几乎,你需要声明它们,添加一个@property 行,并在.m
文件中添加一个@synthesize 行。然后您可以使用 getter/setter 访问它们,例如 [appDelegate setMyValue:5];
其中 addDelegate
应该指向您的应用委托。
感谢您的帮助,但我仍然收到一些构建警告并且运行良好,直到我调用 get 方法。 // ViewControllerDemoAppDelegate.h NSInteger *MyInt; @property (nonatomic) NSInteger *MyInt; // ViewControllerDemoAppDelegate.m @synthesize MyInt;我的整数 = 5; [释放MyInt]; //levelpassed.m #import "ViewControllerDemoAppDelegate.h" fish = [ViewControllerDemoAppDelegate getMyInt]; BW- 1) ViewControllerDemoAppDelegate 可能不响应“+getMyInt” 2) 赋值使指针从整数而不进行强制转换 我应该使用 NSInteger 吗?我是否正确使用了这些属性?
不完全正确:1) 在没有 *
的情况下声明它 NSInteger myInt
,2) 你不应该调用 getMyInt
而只是 myInt
,以及 3) 你需要在应用程序上调用它委托实例对象,而不是类。最简单的方法是[[[UIApplication sharedApplication] delegate] myInt]
以上是关于IPHONE 如何从其他类/视图控制器访问变量的主要内容,如果未能解决你的问题,请参考以下文章
如何从它的项目 ViewControllers 访问 UITabBarController 的变量
iPhone xcode - 从多个视图控制器控制音频的最佳方式
Objective C:从视图控制器访问变量到 NSObject