0

文字列を配列に分割しようとしていますが、「[__NSArrayI componentsSeparatedByString:]: unrecognized selector sent to instance 0x11741b20'」というエラーが発生しています。文字列には、配列の最初のインデックスから取得した値が含まれており、文字列を分割して配列に格納する必要があります。

これは配列値です。

mcommarr:(
":comment",
":comment",
":comment"

NSString *strr = [[NSString alloc]init];
strr = [self.mCommArr objectAtIndex:indexVal];
NSArray *arr2 = [str componentsSeparatedByString:@","];

これが私がこれを使用している完全な方法です。

-(void)loadData:(int)indexVal;
{    
indexVal=serialIndexVal;
serialIndexVal++;

NSLog(@"arrLike:%d", [self.mArrLike count]);
NSLog(@"arrPid:%d", [self.mArrPid count]);

status = [NSString stringWithFormat:@"get"];
[self.mButtonsStatusDict setObject:status forKey:@"status"];

[self.mButtonsPidDict setObject:[self.mArrPid objectAtIndex:indexVal] forKey:@"pid"];


[self.activityIndicator startAnimating];

@try
{
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0ul);

dispatch_async(queue, ^{

    NSString *status = [NSString stringWithFormat:@"get"];
    [self.mButtonsStatusDict setObject:status forKey:@"status"];
    [self.mButtonsPidDict setObject:[self.mArrPid objectAtIndex:indexVal] forKey:@"pid"];

    self.mButtonsCommentsDict = [MyEventApi showComments:self.mButtonsPidDict];

    self.mButtonsDict = [MyEventApi likeDislike:self.mButtonsUidDict post:self.mButtonsPidDict postStatus:self.mButtonsStatusDict];

    dispatch_sync(dispatch_get_main_queue(), ^{

        [self.activityIndicator stopAnimating];
         NSLog(@"buttons data dict:%@", self.mButtonsDict);

        if([self.mButtonsDict count] == 0)
        {
            NSLog(@"server problem no response");
            [self.mArrLike addObject: @"0"];
            [self.mArrDislike addObject: @"0"];
        }else{
        [self.mArrLike addObject: [self.mButtonsDict valueForKey:@"like"]];
        [self.mArrDislike addObject: [self.mButtonsDict valueForKey:@"dislike"]];
        }

        if([self.mButtonsCommentsDict count] == 0)
        {
            NSLog(@"server problem no response");
             [self.mCommArrTot addObject: @"0"];
        }
        else{
            self.dictComm = [self.mButtonsCommentsDict valueForKey:@"comments"];
            [self.mCommArr addObject:[self.dictComm valueForKey:@"comment"]];
            NSLog(@"count:%d",[self.mCommArr count]);
          //  NSString *strTot = [NSString stringWithFormat:@"%d",tot];
           // [self.mCommArrTot addObject:strTot];
            NSLog(@"dictcomm:%@", self.dictComm );
            NSLog(@"mcommarr:%@", [self.mCommArr objectAtIndex:indexVal]);
            strr = [[NSString alloc]init];
            strr = [self.mCommArr objectAtIndex:indexVal];
            //NSString *strr = [[NSString stringWithFormat:@"%@", [self.mCommArr objectAtIndex:indexVal]];
           // NSArray *arr1 = [self string:strr];

           // NSArray *splitArray=[self.mCommArr[0] componentsSeparatedByString:@","];

             //[strr componentsSeparatedByString:@","];
           // NSLog(@"arrSep:%@", arr1);
            //int count = [arr1 count];
            //NSLog(@"arrcount:%d", count);
           // NSString *strTot = [NSString stringWithFormat:@"%d",count];
            // [self.mCommArrTot addObject:strTot];
            //NSLog(@"mcommarrtot:%@", [self.mCommArrTot objectAtIndex:indexVal]);
        }
       // NSLog(@"arrLike:%@", [self.mArrLike objectAtIndex:indexVal]);
        // NSLog(@"arrDisLike:%@", [self.mArrLike objectAtIndex:indexVal]);

        [self.mPublicFriendTable reloadData];

    });
});
}
@catch (NSException *exception) {
    NSLog(@"main: Caught %@: %@", [exception name], [exception reason]); 
}
@finally {

}
}

分割しようとすると殺されます。なぜそう、私は取得していません。誰かがそのような状況に直面した場合は、彼女の何が悪いのかを教えてください.

4

3 に答える 3

0
NSString *strr = [[NSString stringWithFormat:@"%@", [self.mCommArr objectAtIndex:indexVal]];
NSArray *arr2 = [strr componentsSeparatedByString:@","];

これstrは配列にすることができます(エラーが指摘しているように)。結果を教えてください。

于 2013-04-15T13:02:47.487 に答える
0

"[__NSArrayI componentsSeparatedByString:]:

あなたのエラーは、上記のメソッドをに送信しようとしたことを示していますが、送信されNSArrayていません。

配列をインデックス 0 で分割したいので、おそらく次のようにする必要があります。

NSArray *splitArray=[yourArray[0] componentsSeparatedByString:@","];

ここで yourArray は、サーバーから取得した配列です。

于 2013-04-15T12:49:06.983 に答える