2011-01-19 84 views
0

我有一个方法DoSomething()在我的AppDelegate中定义了'找不到方法'编译器警告的方法在#define指令内

这是全面落实我的appDelegate的:

#import "SampleAppAppDelegate.h" 
#import <Foundation/Foundation.h> 

#define DoSomething()\ 
NSConnection *conn = [NSConnection connectionWithRegisteredName:@"myConnection" host:nil];\ 
NSLog(@"Compiler seems to have found the class %@", [NSConnection class]);\ 


@implementation SampleAppAppDelegate 

@synthesize window; 

#pragma mark - 
#pragma mark Application lifecycle 

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {  

    // Override point for customization after application launch. 
    DoSomething(); 
    [self.window makeKeyAndVisible]; 

    return YES; 
} 

- (void)dealloc { 
    [window release]; 
    [super dealloc]; 
} 

@end 

虽然如预期的那样实现工作正常(日志被识别类) 编译器显示警告:

warning: no '+connectionWithRegisteredName:host:' method found 

任何想法如何解决这个问题? 如何修改实现以摆脱警告?

+0

该警告意味着没有接口声明了具有匹配选择器的方法。自从您导入Foundation后,您不应该得到它。这可能是从宏调用方法引起的错误。 – ughoavgfhw 2011-01-19 06:21:36

+1

很难从您粘贴的代码中分辨出来。包含您的宏定义和该宏的单个用法的小程序不会生成任何警告。尝试提供产生上述警告的最小程序。 – 2011-01-19 06:27:21

回答

0

啊,你的目标是iOS。 NSConnection在iOS SDK的公共API中不可用。

相关问题