app delegate未触发

ahe*_*ang -1 cocoa-touch objective-c ios

可能重复:
未调用委托

我在appdelegate类中声明了一个委托,所以它看起来像:

@protocol LoginDelegate

- (void) loadData:(NSObject *)viewCon;

@end

@class RootViewController;

@class DetailViewController;


@interface TestAppDelegate : NSObject <UIApplicationDelegate, LoginViewControllerDelegate, RKObjectLoaderDelegate> {
   id <LoginDelegate> delegate;
}

@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) IBOutlet UISplitViewController *splitViewController;
@property (nonatomic, retain) IBOutlet RootViewController *rootViewController;
@property (nonatomic, retain) IBOutlet DetailViewController *detailViewController;
@property (nonatomic, assign) id <LoginDelegate> delegate;

@end

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    //some code
         [self.delegate loadData:self];
    //some code

    return YES;
}
Run Code Online (Sandbox Code Playgroud)

在我的其他课程中,我实现了这个委托:

- (void) loadData:(NSObject*)viewCon
{
    NSLog(@"LOADING DATA");
    [[RKObjectManager sharedManager] loadObjectsAtResourcePath:@"/groups.json" delegate: self];
}
Run Code Online (Sandbox Code Playgroud)

但是,为什么不被召唤?

Vik*_*ica 5

它没有被调用,因为你没有把东西设置为委托(我假设).

所以self.delegate是零,因为你可以发送任何消息给nil,nothings发生

你有((TestAppDelegate *)[[UIApplication sharedApplication]).delegate = self或在 ((TestAppDelegate *)[[UIApplication sharedApplication]).delegate = aObject某个地方,在哪里self或aObject符合你的LoginDelegate?

请参阅:授权和协议