-2
NSURL *url = [[NSURL alloc] initWithString:@"http://nyxmyx.com/Kinkey/KinkeyPHP/lastidretrieve.php"];
    NSData *data = [url resourceDataUsingCache:YES];
    NSString *string = [[NSString alloc] initWithData:data encoding:NSMacOSRomanStringEncoding];
    NSLog(@"result FOR ID  %@",string);

私はdidenterBackgroundMethodでこのコードを使用しています。応答を文字列として返すlastidretrieve.phpを呼び出したいだけです。「レシーバータイプnsurlのインスタンスメッセージはセレクターresourceDataUsingCacheでメソッドを宣言していません」というエラーが発生します。このエラーについてはわかりません。

4

2 に答える 2

0

のドキュメントを読むだけで十分でしNSURLた。このメソッドは非推奨です。[[NSData alloc] initWithContentsOfURL:url]代わりに使用する必要があります。

于 2013-02-16T06:54:18.903 に答える
0

文字列出力を提供するコードの代わりにこのコードを使用してください。その後、目的の出力を取得するには、その文字列をフォーマットする必要があります。

NSString *post =@"";

    NSURL *url=[NSURL URLWithString:@"http://nyxmyx.com/Kinkey/KinkeyPHP/lastidretrieve.php"];

    NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];

    NSString *postLength = [NSString stringWithFormat:@"%d", [postData length]];

    NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
    [request setURL:url];
    [request setHTTPMethod:@"POST"];
    [request setValue:postLength forHTTPHeaderField:@"Content-Length"];
    [request setHTTPBody:postData];

    NSError *error = [[NSError alloc] init];
    NSHTTPURLResponse *response = nil;
    NSData *urlData=[NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];

    if ([response statusCode] >=200 && [response statusCode] <300)
    {
        //NSData *data = [responseData resourceDataUsingCache:YES];
        NSString *string = [[NSString alloc] initWithData:urlData encoding:NSMacOSRomanStringEncoding];
        NSLog(@"responseData-%@",string);
    }

出力はこんな感じになります。

responseData-1995<br />prabu<br />1231231233<br />antab<br />8080808080<br />1360738531881.jpg<br />No

アップデート

URLに引数を追加したい場合は、投稿文字列をこれに変更してください。

NSString *post =[[NSString alloc] initWithFormat:@"yourArg=%@",yourArg];
于 2013-02-16T07:04:24.447 に答える