samhuri.net-ios/Pods/PromiseKit/objc/UIAlertView+PromiseKit.m
2014-10-18 14:19:51 -07:00

35 lines
718 B
Objective-C

#import <objc/runtime.h>
#import "PromiseKit/Promise.h"
#import "UIAlertView+PromiseKit.h"
@interface PMKAlertViewDelegater : NSObject <UIAlertViewDelegate> {
@public
void (^fulfiller)(id);
}
@end
@implementation PMKAlertViewDelegater
- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex {
fulfiller(PMKManifold(@(buttonIndex), alertView));
PMKRelease(self);
}
@end
@implementation UIAlertView (PromiseKit)
- (PMKPromise *)promise {
PMKAlertViewDelegater *d = [PMKAlertViewDelegater new];
PMKRetain(d);
self.delegate = d;
[self show];
return [PMKPromise new:^(id fulfiller, id rejecter){
d->fulfiller = fulfiller;
}];
}
@end