Replace PKPass文件在同一应用程序中的文件的存折上被替换

Replace PKPass文件在同一应用程序中的文件的存折上被替换,replace,passbook,Replace,Passbook,我的应用程序处理下载优惠券和保存到存折。但每次我下载不同的优惠券时,存折上的文件都会被替换 下面是我将优惠券添加到存折的代码: 步骤1:将“PassKit”框架添加到项目中并导入相同的框架 步骤2:在我的h文件中添加“pkaddPasseViewControllerDelegate” 步骤3: - (void) generatePass { if (![PKPassLibrary isPassLibraryAvailable]) { [[[UIAlertView alloc] init

我的应用程序处理下载优惠券和保存到存折。但每次我下载不同的优惠券时,存折上的文件都会被替换

下面是我将优惠券添加到存折的代码:

步骤1:将“PassKit”框架添加到项目中并导入相同的框架

步骤2:在我的h文件中添加“pkaddPasseViewControllerDelegate”

步骤3:

- (void) generatePass {

if (![PKPassLibrary isPassLibraryAvailable]) {
    [[[UIAlertView alloc] initWithTitle:@"Error"
                                message:@"PassKit not available"
                               delegate:nil
                      cancelButtonTitle:@"Pitty"
                      otherButtonTitles: nil] show];
    return;
}
else {

    NSData *passData = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://(url).pkpass"]];

    NSError* error = nil;
    PKPass *newPass = [[PKPass alloc] initWithData:passData
                                             error:&error];
    if (error!=nil) {
        [[[UIAlertView alloc] initWithTitle:@"Passes error"
                                    message:[error
                                             localizedDescription]
                                   delegate:nil
                          cancelButtonTitle:@"Ooops"
                          otherButtonTitles: nil] show];
        return;
    }

    PKAddPassesViewController *addController =
    [[PKAddPassesViewController alloc] initWithPass:newPass];

    addController.delegate = self;
    [self presentViewController:addController
                       animated:YES
                     completion:nil];
}
}

存折索引通过
serialNumber
passTypeIdentifier
传递。添加过程时,如果用户的过程库中已存在具有匹配的
serialNumber
passTypeIdentifier
的过程,则添加的过程将覆盖该过程


要为同一个
passTypeIdentifer
添加多个通行证,您必须为每个新通行证生成唯一的
serialNumber

他们有不同的序列号吗?