-1

Webサーバーでパスを生成してXcodeにダウンロードするにはどうすればよいですか。xcodeで、パスを生成してから通帳ウォレットに追加しようとしています。コード:

NSString* passFile = @"http://pass.keatonburleson.com/gen.php?name=128keaton";

//3
NSData *passData = [NSData dataWithContentsOfFile:passFile];

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

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

   [self presentViewController:addController
                   animated:YES
                 completion:nil];

つまり、基本的に、私のエラーは「トレース」であり、クラッシュします。更新:Calebのおかげで、トレースエラーはもうありません!残念ながら、「パスは有効なエラーではありません!」というエラーが表示されます。:(最新の更新されたコード:

    NSString* passFile = @"http://pass.keatonburleson.com/gen.php?name=128keaton";
 NSURL *url = [NSURL URLWithString:passFile];
//3
NSData *passData = [NSData dataWithContentsOfURL:url];

//4
NSError* error = nil;
PKPass *newPass = [[PKPass alloc] initWithData:passData
                                         error:&error];

BG情報:

私のウェブサーバーには、パスキットパスを生成し、PkPassのようにダウンロード用に表示するPHPスクリプトが含まれています。MacまたはiPhoneを使用している場合は、passFile URLにアクセスすると、有効なパスが表示されます。私の問題は、リンクされたファイルが実際に生成されたときに自動的にダウンロードされるときに、リンクされたファイルをダウンロードしようとしていることだと思います。Webサーバーの「保存された」pkpassを破棄しないように、サーバーコードを編集する必要がある場合があります。しかし、私はむしろそれをしたくありません。

4

1 に答える 1

0

それがあなたが提供しているものなので、あなたはおそらく使用しているはず-dataWithContentsOfURL:です。passData == nil2行目以降ですか?はいの場合、それはあなたの問題かもしれません。

注: PKPassのドキュメントには、からエラーが発生した場合はコンソールで詳細を確認する必要があると記載され-initWithData:error:ているので、そこを見て、見つけたものをお知らせください。

アップデート:

私のウェブサーバーには、パスキットパスを生成し、PkPassのようにダウンロード用に表示するPHPスクリプトが含まれています。MacまたはiPhoneを使用している場合は、passFile URLにアクセスすると、有効なパスが表示されます。

サーバーがクライアントを検出し、それに基づいて何を返送するかを決定していない限り、パスを表示する同じURLがパスファイル自体を返す可能性はほとんどありません。受け取ったデータの内容を見て、それが有効なパスであるかどうかを確認します。そうでない場合は、サーバーを調整するか、別のURLを使用する必要があります。

于 2012-10-04T23:13:27.197 に答える