Вы можете использовать этот метод против объекта класса.Предположим, у вас есть
@interface MyClass:NSObject{
....
}
+ (void) readAndStoreDataToDatabase;
@end
, а затем выполните
NSThread*thread=[NSThread detachNewThreadSelector:@selector(readAndStoreDataToDatabase)
target:[MyClass class]
withObject:nil ];
Обратите внимание, что объект класса класса, унаследованного от NSObject
, является NSObject
, поэтому вы можете передать его этимметоды.Убедитесь сами, запустив эту программу:
#import <Foundation/Foundation.h>
int main(){
NSAutoreleasePool*pool=[[NSAutoreleasePool alloc] init];
NSString* foo=@"foo";
if([foo isKindOfClass:[NSObject class]]){
NSLog(@"%@",@"YES");
}else{
NSLog(@"%@",@"NO");
}
if([[NSString class] isKindOfClass:[NSObject class]]){
NSLog(@"%@",@"YES");
}else{
NSLog(@"%@",@"NO");
}
[pool drain];
}
Дело в том, что в Objective-C методы класса (которые называются статическими методами в C ++) - это просто стандартные методы, отправляемые объекту класса.Подробнее об объектах класса читайте в этих замечательных постах в блогах Хомяк и Какао с любовью .