NSMetadataQueryDidUpdateNotification不工作

有人能告诉我下面的代码是从iOS 5 Developer's Cookbook改编的吗?

- (void) startMonitoringUbiquitousDocumentsFolder { // Remove any existing query – stored in local instance variable if (alertQuery) [alertQuery stopQuery]; // Search for all file names alertQuery.predicate = [NSPredicate predicateWithFormat: @"NSMetadataItemFSNameKey == '*'"]; alertQuery.searchScopes = [NSArray arrayWithObject: NSMetadataQueryUbiquitousDocumentsScope]; // Subscribe to query updates [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(alertUserToUpdates:) name:NSMetadataQueryDidUpdateNotification object:nil]; [alertQuery startQuery]; } - (void) alertUserToUpdates { NSLog(@"Contents changed in ubiquitous documents folder"); UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Home Monitor" message:@"Something's going on." delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:@"Check Recording", nil]; [alertView show]; [self stopMonitoringUbiquitousDocumentsFolder]; } 

我收到一个exception,说select器alertUserToUpdates:无法识别。 为什么不能识别显然就在它旁边的方法?

 2013-04-29 18:07:22.458 eyeFun[8231:907] -[RGPViewController alertUserToUpdates:]: unrecognized selector sent to instance 0x1fd506a0 2013-04-29 18:07:22.462 eyeFun[8231:907] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[RGPViewController alertUserToUpdates:]: unrecognized selector sent to instance 0x1fd506a0' *** First throw call stack: (0x337eb3e7 0x3b4e6963 0x337eef31 0x337ed64d 0x33745208 0x3373c349 0x34053b7f 0x340ab327 0x3373c349 0x337b810f 0x37880de9 0x340fa657 0x337c0857 0x337c0503 0x337bf177 0x3373223d 0x337320c9 0x3731133b 0x3564e2b9 0x465b5 0x3b913b20) libc++abi.dylib: terminate called throwing an exception 

因为它旁边正确。

你告诉它使用一个名为alertUserToUpdates:的select器alertUserToUpdates: 您有一个名为alertUserToUpdates的方法。 这个:很重要 – 它说这个方法只有一个参数,但是实际的方法不需要参数。

你的方法应该有一个NSNotificationtypes的参数。