'找不到方法'编译器警告的方法在#define指令内
问题描述:
我有一个方法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
任何想法如何解决这个问题? 如何修改实现以摆脱警告?
答
啊,你的目标是iOS。 NSConnection
在iOS SDK的公共API中不可用。
该警告意味着没有接口声明了具有匹配选择器的方法。自从您导入Foundation后,您不应该得到它。这可能是从宏调用方法引起的错误。 – ughoavgfhw 2011-01-19 06:21:36
很难从您粘贴的代码中分辨出来。包含您的宏定义和该宏的单个用法的小程序不会生成任何警告。尝试提*生上述警告的最小程序。 – 2011-01-19 06:27:21