首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IOS PASSBOOK -为Passbook创建多个PKPass时出错

IOS PASSBOOK -为Passbook创建多个PKPass时出错
EN

Stack Overflow用户
提问于 2015-08-07 08:03:11
回答 1查看 480关注 0票数 2

我正在编写在iOS中创建登机牌的存折功能,我能够创建一张登机牌,而且它运行良好,但是在创建多张通行证的同时,我遇到了以下问题:

  1. 我可以得到点票,但是所有的传球都被最后一次点票取代了。
  2. 在选择“全部保存”之后,在存折应用程序中只有一次通过,即最后一次。

我使用下面的代码来显示通行证

代码语言:javascript
复制
-(void) initializeWithMultiPassbookArray:(NSMutableArray *)arrPasses
{
    NSMutableArray *arrPKPass = [[NSMutableArray alloc] init];

    for(NSString *path in arrPasses)
    {
        NSData *data;

        if(path && path.length)
        {
            data = [[NSData alloc] initWithContentsOfFile:path];

            NSError *error;

            PKPass *passSample = [[PKPass alloc] initWithData:data error:&error];

            if(passSample)
            {
                [arrPKPass addObject:passSample];
                passSample = nil;
            }
            else
                JALog(@"passSample is nil");
        }
        else
        {
            JALog(@"Error occured while fetching pkpass data from cache path");
        }
    }

    if(arrPKPass && arrPKPass.count > 1)
    {
        if(!self.passLibrary)
            self.passLibrary = [[PKPassLibrary alloc] init];

        __weak BookingSuccessfulViewController *self_ = self;
        if(viewPopUpBg)
        {
            [viewPopUpBg removeFromSuperview];
            viewPopUpBg = nil;
        }
        [self.passLibrary addPasses:arrPKPass withCompletionHandler:^(PKPassLibraryAddPassesStatus status) {

            switch (status) {
                case PKPassLibraryDidAddPasses:
                {
                    [App_Delegate performSelectorOnMainThread:@selector(RemoveLoader) withObject:nil waitUntilDone:YES];
                    if([self_ respondsToSelector:@selector(showAlertFor:withMsg:withTag:)])
                        [self_ showAlertFor:SAVED withMsg:@"Your booking details have been added to Passbook." withTag:0];
                    break;
                }
                case PKPassLibraryDidCancelAddPasses:
                {

                    [App_Delegate performSelectorOnMainThread:@selector(RemoveLoader) withObject:nil waitUntilDone:YES];

                    break;
                }
                case PKPassLibraryShouldReviewPasses:
                {
                    //[self_ performSelectorOnMainThread:@selector(RemoveLoader) withObject:nil waitUntilDone:YES];
                    [App_Delegate performSelectorOnMainThread:@selector(RemoveLoader) withObject:nil waitUntilDone:YES];


                    PKAddPassesViewController *vcPKAddPass = [[PKAddPassesViewController alloc] initWithPasses:arrPKPass];
                    [vcPKAddPass setDelegate:(id)self_];
                    [self_ presentViewController:vcPKAddPass animated:YES completion:nil];
                    vcPKAddPass = nil;
                    break;
                }
                default:
                    break;
            }

        }];
    }
    else if(arrPKPass.count == 1)
    {
        if(viewPopUpBg)
        {
            [viewPopUpBg removeFromSuperview];
            viewPopUpBg = nil;
        }

        [App_Delegate performSelectorOnMainThread:@selector(RemoveLoader) withObject:nil waitUntilDone:YES];

        PKPass *passLocal = [arrPKPass objectAtIndex:0];

        if(passLocal)
        {
            self.currentPass = passLocal;

            //present view controller to add the pass to the library
            PKAddPassesViewController *vcPKAddPass = [[PKAddPassesViewController alloc] initWithPass:passLocal];
            [vcPKAddPass setDelegate:(id)self];
            [self presentViewController:vcPKAddPass animated:YES completion:nil];
            vcPKAddPass = nil;
        }
    }
    else
    {
        JALog(@"arrPKPass is nil");
    }
}
EN

回答 1

Stack Overflow用户

发布于 2015-08-11 10:51:38

得到了我的答案:

每次传递都应该在创建JSON时在键"serialNumber“中包含不同的序列号

还请检查Project>Target>Capabilities>Passbook中的功能

使用特定标识符选择允许传递类型的子集

这些步骤对我有效。

希望也能帮助别人。

谢谢

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31872567

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档