从应用程序委托调用 NSObject class 方法
Calling NSObject class method from the app delegate
我正在尝试从我的 AppDelegate 的 NSObject class 调用一个方法。如果从 UIViewController 调用但在 AppDelegate 中没有运气,通常这会起作用。我的代码:
AppDelegate.m
#import "ACManager.h"
@implementation AppDelegate {
ACManager *acManager;
}
-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[acManager login];
}
ACManager.h
@interface ACManager : NSObject
-(void)login;
@end
ACManager.m
+(ACManager*)sharedInstance {
static ACManager *sharedInstance;
@synchronized(self) {
if (!sharedInstance) {
sharedInstance = [[self alloc]init];
}
}
return sharedInstance;
}
-(void)login
{
NSLog(@"login run");
}
@end
任何想法谢谢。从应用程序委托调用时是否有不同的解决方法?
对于单例你需要使用:
[[ACManager sharedInstance] login];
或为您的变量赋值:
acManager=[ACManager sharedInstance];
然后,调用:
[acManager login];
您是说:
[acManager login];
因此,您正在向 acManager
发送实例消息。但是 acManager
是零!您忘记提供实际的 ACManager 实例 并将其放置在该插槽中(将其分配给变量)。
因此,什么也没有发生。
我正在尝试从我的 AppDelegate 的 NSObject class 调用一个方法。如果从 UIViewController 调用但在 AppDelegate 中没有运气,通常这会起作用。我的代码:
AppDelegate.m
#import "ACManager.h"
@implementation AppDelegate {
ACManager *acManager;
}
-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[acManager login];
}
ACManager.h
@interface ACManager : NSObject
-(void)login;
@end
ACManager.m
+(ACManager*)sharedInstance {
static ACManager *sharedInstance;
@synchronized(self) {
if (!sharedInstance) {
sharedInstance = [[self alloc]init];
}
}
return sharedInstance;
}
-(void)login
{
NSLog(@"login run");
}
@end
任何想法谢谢。从应用程序委托调用时是否有不同的解决方法?
对于单例你需要使用:
[[ACManager sharedInstance] login];
或为您的变量赋值:
acManager=[ACManager sharedInstance];
然后,调用:
[acManager login];
您是说:
[acManager login];
因此,您正在向 acManager
发送实例消息。但是 acManager
是零!您忘记提供实际的 ACManager 实例 并将其放置在该插槽中(将其分配给变量)。
因此,什么也没有发生。