如何使实例变量全局化



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

您可以在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

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

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

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

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

例:

第一视图

@interface FirstView : UIView
{
    NSString *data;
}
@property (nonatomic,copy) NSString *data;
@end

第一视图

@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
<</div> div class="one_answers">

好吧,如果您想知道如何使用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 指定链接

相关内容

  • 没有找到相关文章

最新更新