如何在 IOS 中的其他 class 中使用 app delegate 的 int?

How to use int of app delegate in other class in IOS?

有人可以帮我回答以下3个问题吗?它将帮助我解决问题。

  1. 如何在app delegate.
  2. 中声明int
  3. 如何将此 int 值转移到其他 class。
  4. 如何NSLog这个值在其他class中。
//  AppDelegate.h
@interface AppDelegate : UIResponder <UIApplicationDelegate>
@property (strong, nonatomic) UIWindow *window;
@property (nonatomic) int myIntVariable;
@end

//  ViewController.m
#import "AppDelegate.h"

- (void)viewDidLoad {
    [super viewDidLoad];
    AppDelegate *delegate = [UIApplication sharedApplication].delegate;
    delegate.myIntVariable = 4;
    NSLog(@"%d", delegate.myIntVariable);
}

像在任何其他 class:

中一样在 AppDelegate.h 中声明 int 属性
@property (nonatomic) int randomNumber;

然后在 class 中导入 AppDelegate.h 您想要访问此变量。

并写下:

AppDelegate *delegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
NSLog(@"Int: %d", delegate.randomNumber);

在AppDelegate.h 或swift 中创建静态变量。我在 swift 中完成了这个答案。

 static var myInt = 2

然后在 ViewController 或其他 class 上访问它。

    override func viewDidLoad() {
    super.viewDidLoad()
    println(AppDelegate.myInt)
}

你可以做实例变量,但如果你这样做的话:

     var myInt = 2

那你需要一个AppDelegate的对象来获取值:

println(AppDelegate().myInt)

我更喜欢第一个,因为我不必创建对象,但这里的 AppDelegate 是一个单例,所以无论哪种方式都可以。