2011-07-15 3 views
0

私はquizlet.comからデータを取得することだし、それは簡単なコードのためにOK作品:SBJsonとNSDataの

-(void) grabbQuizletWithUrl:(NSURL*)requstURL { 

    NSString *dataString = [NSString stringWithContentsOfURL:requestURL encoding:NSUTF8StringEncoding error:&error]; 

    NSDictionary *dict = [dataString JSONValue]; 
} 

しかし、私は活動の指標を起動および停止するためにNSURLConnectionを使用する必要があります。 -JSONValueに失敗しました:

[707 2377:]私はこのようなメッセージを取得しています

-(void) grabbQuizletWithUrl:(NSURL*)requstURL { 

    NSURLRequest *quizletRequest = [[NSURLRequest alloc] initWithURL:requestURL]; 
    NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:quizletRequest 
                  delegate:self]; 
    [connection release]; 
    [quizletRequest release]; 

} 

// and getting data in delegate method: 



- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data { 

    [self.activityIndicator stopAnimating]; 

    NSString *dataString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; 

    NSDictionary *dict = [dataString JSONValue]; 

} 

をしようとしています。エラーは次のとおりです。予期しない入力の終了

[2377:707] -JSONValueが失敗しました。エラー:不正なトークンの開始[。]

[2377:707] -JSONValueに失敗しました。エラーは次のとおりです。トークン[D]の不正スタート- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data;

答えて

3

、あなただけの応答の一部だけを得たとして、あなただけの、以前に格納されたと受け取ったデータを追加する必要があり、すなわち:

-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data { 
    // someNSMutableDataIVar is an ivar to store the data in 
    [someNSMutableDataIVar appendData:data]; 
} 

その後、 - (void)connectionDidFinishLoading:(NSURLConnection *)connection;という別の代理メソッドでは、データを処理する必要があります。

-(void)connectionDidFinishLoading:(NSURLConnection *)connection { 
    // the connection finished loading all data, process... 
    [self.activityIndicator stopAnimating]; 
    NSString *dataString = [[NSString alloc] 
          initWithData:someNSMutableDataIVar 
           encoding:NSUTF8StringEncoding]; 
    NSDictionary *dict = [dataString JSONValue]; 
} 

非同期URLローディングシステムについては、アップルのURL Loading System Programming Guideに詳しく説明されています。

希望すると便利です。

+0

誤って「appendData」申し訳ありません。 –

+0

ありがとう、それは私が逃したものです!今それは動作します。私はAppleのガイドを覚えていませんでしたが、ちょうどそれを見ました。 – Michael

+0

あなたは歓迎です。マイケル –