0

iOSアプリで文字列の値を取り消そうとしています。私は次の形式のNSStringを持っています:

loc:32 3203 292 293 321

5つの整数すべてを5つの異なるint変数に格納したいと思います。整数の長さはさまざまです。現在、スペース文字をガイドとして使用している整数を判別しようとしていますが、問題が発生しています。それを行うためのより簡単な方法がなければなりません。

これが私が持っているものです:

int length = [locationString length];
    NSMutableString * xStr, * yStr,* zStr, *tiltStr, *panStr;

    int charIndex = -1;
    unichar cur;

    for(i = 3; i < length; i++)
    {
        cur = [locationString characterAtIndex:i];
        if(cur == ' ') charIndex++;
        else
        {
            if(charIndex == 0)
            {
                [xStr appendString:[NSString stringWithCharacters:&cur length:1]];
            }
            else if(charIndex == 1)
            {
                [yStr appendString:[NSString stringWithCharacters:&cur length:1]];
            }
            else if(charIndex == 2)
            {
                [zStr appendString:[NSString stringWithCharacters:&cur length:1]];
            }
            else if(charIndex == 3)
            {
                [tiltStr appendString:[NSString stringWithCharacters:&cur length:1]];
            }
            else if(charIndex == 4)
            {
                [panStr appendString:[NSString stringWithCharacters:&cur length:1]];
            }
        }
    }

    NSLog(@"x String: %@", xStr);
    NSLog(@"y String: %@", yStr);
    NSLog(@"z String: %@", zStr);
    NSLog(@"tilt String: %@", tiltStr);
    NSLog(@"pan String: %@", panStr);

    if(xStr != NULL) xVal = [xStr integerValue];
    if(yStr != NULL) yVal = [yStr integerValue];
    if(zStr != NULL) zVal = [zStr integerValue];
    if(tiltStr != NULL) tiltVal = [tiltStr integerValue];
    if(panStr != NULL) panVal = [panStr integerValue];

しかし、私は毎回無効な文字列を取得しています。他の誰かが前にこのようなことをしますか?

ありがとう

4

2 に答える 2

1

NSString componentsSeparatedByString APIを使用して、作業を楽にすることを検討する必要があると思います。を使用して文字列のNSArrayを取得し[locationString componentsSeparatedByString:@" "]、整数は1〜5の整数になります

于 2012-12-04T00:19:19.587 に答える
0

私はから始めます

[locationString componentsSeparatedByString:@" "];

これにより、各文字列コンポーネントの配列が得られます。

次に、@ "loc:"を含むインデックス0を無視でき、残りの配列インデックスには、使用するデータが含まれます。

于 2012-12-04T00:19:40.120 に答える