|
@@ -35,6 +35,35 @@
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+- (void)makeObjectsPerformSelectorWithObjectsOnMainThread:(SEL)sel, ...{
|
|
|
|
+ va_list args;
|
|
|
|
+ va_start(args, sel);
|
|
|
|
+ NSArray *allObject = self.allObjects;
|
|
|
|
+ for (NSInteger i = 0; i<allObject.count; i++) {
|
|
|
|
+ if (allObject.count > i) {
|
|
|
|
+ id obj = allObject[i];
|
|
|
|
+ if ([obj respondsToSelector:sel]) {
|
|
|
|
+ NSMethodSignature *sig = [obj methodSignatureForSelector:sel];
|
|
|
|
+ if (!sig) {
|
|
|
|
+ [obj doesNotRecognizeSelector:sel];
|
|
|
|
+ }
|
|
|
|
+ dispatch_async(dispatch_get_main_queue(), ^{
|
|
|
|
+ NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:sig];
|
|
|
|
+ if (!invocation) {
|
|
|
|
+ [obj doesNotRecognizeSelector:sel];
|
|
|
|
+ }
|
|
|
|
+ [invocation setTarget:obj];
|
|
|
|
+ [invocation setSelector:sel];
|
|
|
|
+ [self setInv:invocation withSig:sig andArgs:args];
|
|
|
|
+ [invocation invoke];
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+
|
|
- (void)setInv:(NSInvocation *)inv withSig:(NSMethodSignature *)sig andArgs:(va_list)args {
|
|
- (void)setInv:(NSInvocation *)inv withSig:(NSMethodSignature *)sig andArgs:(va_list)args {
|
|
NSUInteger count = [sig numberOfArguments];
|
|
NSUInteger count = [sig numberOfArguments];
|
|
for (int index = 2; index < count; index++) {
|
|
for (int index = 2; index < count; index++) {
|