-1

我在我的应用程序委托中有一个实例变量我想在我的整个应用程序的每个类中使用它而不使用 NSUSERDEFAULT。我想使用 extern 数据类型但我没有得到任何东西如何声明 extern 变量以及如何使用请帮助 ?

4

3 回答 3

2

您可以在Application Delegate.

比您可以在任何地方访问该变量

//To set value
AppDelegate *yourAppdelegate = (AppDelegate *)[[UIApplication] sharedApplication]delegate];
yourAppdelegate.yourStringVariable = @"";

//To get value 
AppDelegate *yourAppdelegate = (AppDelegate *)[[UIApplication] sharedApplication]delegate];
NSString *accessValue = yourAppdelegate.yourStringVariable;

编辑

假设你有MyViewController

//头文件

@interface MyViewController : UIViewController
{
     NSString *classLevelProperty;
}

@property (nonatomic, retain) NSString *classLevelProperty;

@end    

//实现文件

@implementation MyViewController

@synthesize classLevelProperty;

-(void)viewDidLoad
{
    AppDelegate *yourAppdelegate = (AppDelegate *)[[UIApplication] sharedApplication]delegate];
    classLevelProperty = yourAppdelegate.yourStringVariable;

     //Here above classLevelProperty is available through out the class. 
}
@end

这可以在任何视图控制器中完成,并且 yourStringVariable 的属性值可用于任何视图控制器或任何其他类,如上面的代码。

希望这能清除。如果仍然无法正确获取,请发表评论。

于 2012-10-10T05:27:13.407 回答
0

在第一个视图上实现一个属性并从第二个视图设置它。

这要求第二个视图具有对第一个视图的引用。

例子:

第一视图.h

@interface FirstView : UIView

{

    NSString *data;

}

@property (nonatomic,copy) NSString *data;
@end

第一视图.m

@implementation FirstView

// implement standard retain getter/setter for data:

@synthesize data;

@end

SecondView.m

@implementation SecondView

- (void)someMethod

 {

    // if "myFirstView" is a reference to a FirstView object, then

    // access its "data" object like this:

    NSString *firstViewData = myFirstView.data;

}

@end
于 2012-10-10T05:26:31.187 回答
0

好吧,如果您想知道如何使用extern关键字,那么这就是如何使用它。 在您为其分配值的文件中viewController.hviewController.m以上文件中声明了一个变量。@interface

viewController.h这样——

#import <UIKit/UIKit.h>
int value = 5;

@interface ViewController : UIViewController{

}

你也可以在viewController.m上面声明它@implementation

#import "ViewController.h"

int value = 5;

@implementation ViewController


@end

然后使用extern要在哪个类中获取此变量的关键字。在secondViewController.h类中声明了一个像这样的变量 -

#import <UIKit/UIKit.h>

@interface SecondviewController : UIViewController{

}

extern int value;

@end

现在secondViewController.m你会看到value包含5.

有关 extern 关键字的更多详细信息,请参阅 使用 extern 指定链接

于 2012-10-10T05:29:51.367 回答