如何在 IOS 中的其他 class 中使用 app delegate 的 int?
How to use int of app delegate in other class in IOS?
有人可以帮我回答以下3个问题吗?它将帮助我解决问题。
- 如何在
app delegate
. 中声明int
- 如何将此
int
值转移到其他 class。
- 如何
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 是一个单例,所以无论哪种方式都可以。
有人可以帮我回答以下3个问题吗?它将帮助我解决问题。
- 如何在
app delegate
. 中声明 - 如何将此
int
值转移到其他 class。 - 如何
NSLog
这个值在其他class中。
int
// 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 是一个单例,所以无论哪种方式都可以。