0

サーバーから応答を受信して​​います。次のようになります。

2012-09-12 16:29:11.690 WhatIsIt[1763:707] (
    {
    qid = ebb81a9c0c2125c9f12fee33c281dfe2ef5c1596;
    "qid_data" =         {
        labels = Wristwatch;
    };
}  )

私が"qid"このように値を解析しているとき:

- (void)updateCompleteWithResults:(NSArray*)results{    
       NSLog(@"%@",results);
       NSString *qid = [results valueForKey:@"qid"];

オブジェクトは文字列の周りに括弧を取得していNSStringます(方法はわかりません)は次のようになります:

2012-09-12 16:34:17.979 WhatIsIt[1785:707] (
2e1da5854f3b4f02cd967293cd1364e6d3e0b76a
)

だから私は使用しようとしました:

NSString *string = @" spaces in front and at the end ";
NSString *trimmedString = [string stringByTrimmingCharactersInSet:
                              [NSCharacterSet whitespaceAndNewlineCharacterSet]];

アプリがクラッシュします、何か考えはありますか?

4

1 に答える 1

2

問題は、この構造のルートオブジェクトが配列であるということです...

NSArrayvalueForKey:のメソッドを見ると、実際にはそのメンバーのそれぞれを呼び出し、結果を別の配列で返すことがわかります(これが表示されているものです)。valueForKey:

代わりにすべきことは、最初に興味のあるオブジェクトを取得してから、それ自体で作業することです。

NSDictionary *myObject = [whatIsIt objectAtIndex:0];

NSString *qId = [myObject objectForKey:@"qid"];
于 2012-09-12T13:46:50.597 に答える