小编dom*_*all的帖子

从swift调用objective-C typedef块

我正试图从swift调用一个方法.该方法是用Objective-C编写的单例

头文件中的块:

typedef void(^VPersonResultBlock)(Person *person, NSError *error);

- (void)askForMe:(VPersonResultBlock)block;
Run Code Online (Sandbox Code Playgroud)

这是该方法的实现.

- (void)askForMe:(VPersonResultBlock)block
{
if (_me) block(_me,nil);
else {
    [Person getMeWithBlock:^(PFObject *person, NSError *error) {
        if (!error) {
            _me = (Person *)person;
            block(_me,nil);
        }

        else if (error) {
            block(nil,error);
        }
        else {
            NSDictionary *userInfo = @{
                                       NSLocalizedDescriptionKey: NSLocalizedString(@"Operation was unsuccessful.", nil),
                                       NSLocalizedFailureReasonErrorKey: NSLocalizedString(@"The operation failed to retrieve the user.", nil),
                                       NSLocalizedRecoverySuggestionErrorKey: NSLocalizedString(@"Check your network connection and try again", nil)
                                       };
            NSError *error = [[NSError alloc] initWithDomain:@"VisesAsyncErrorDomain" code:-10 userInfo:userInfo];
            block(nil,error);
        }
    }]; …
Run Code Online (Sandbox Code Playgroud)

closures objective-c ios objective-c-blocks swift

3
推荐指数
1
解决办法
4362
查看次数

标签 统计

closures ×1

ios ×1

objective-c ×1

objective-c-blocks ×1

swift ×1