iPhone - 如何使用一个类访问另一个类的全局变量

时间:2010-12-27 06:48:10

标签: iphone objective-c iphone-sdk-3.0

我是iPhone开发的新手。

我有一个带有2个类的iphone应用程序..(即mainView,subView)

在mainView中,我有一个名为currentId的全局变量

我将currentId的值设置为5。

现在我需要知道的是如何将currentId访问到subView类中。

请帮助指导我......

3 个答案:

答案 0 :(得分:1)

@barbgal ....你可以在子视图中访问你的变量currentid .......你在子视图类中的mainView的制作对象

假设您的currentid变量的类型为NSInteger ...

mainView.h

NSInteger currentID;
@property(nonatomic,assign) NSInteger currentID;

mainView.m

 @synthesize currentID;
    currentID = 5; 
 //as you want to assign 5 to it

现在在你的subView类中创建了mainView类的对象

例如: - mainView *mainView = [[mainView alloc]initWithNibName:@"mainView"bundle:nil];

现在将它分配给你的subView类中的任何位置mainView.currentid ......在subView类中做你想做的事情

答案 1 :(得分:1)

好的我认为这里的回答者的某些部分是正确的,但我们需要在这里添加更多内容..

所以我会一步一步走

1你肯定需要将currentID作为MainView中的属性,如其他回答者所述

2对于Sudhanshu的回答,如果是你的init和init主视图,新的viewcontroller将被初始化,因此它的currentID将任何值都任意值,所以这是不正确的。

3现在解决方案部分: - 有两种解决方案: -

(1)mainview* vc = (mainview*)self.parentViewController;

然后将currentID作为vc.currentId

进行访问

别忘了在你的子视图中导入“mainview.h”

(2)使用appdelegate变量,即在你的appdelegate中声明currentID 并将其作为财产

然后在mainview中将currentID设置为: -

  

urAppDelegate delegate =   (urAppDelegate )[[UIApplication的   sharedApplication]委托];   delegate.currentID = @ “5”;

并在子视图中访问

  

urAppDelegate delegate =   (urAppDelegate )[[UIApplication的   sharedApplication]委托];   的NSLog(@ “%@”,delegate.currentID);

别忘了在两个viewcontrollers中导入“urAppDelegate.h”

答案 2 :(得分:0)

要访问currentId,你需要使它成为一个属性,然后通过在subView类中创建mainView类的对象,你可以访问currentID。

在mainView.h中

NSInteger currentID;

@property(nonatomic,assign) NSInteger currentID;
在mainView.m中

@synthesize currentID;

并将其值设置在您想要的位置,并在subView中创建mainView类的对象并使用。操作员,您可以访问此属性。