0

私は客観的なCメソッドで最も基本的な問題を抱えています。からの提案に基づく: How can I truncate an NSString to a set length?

切り捨てられた NSString を返すメソッドを作成しようとしています。しかし、それは機能していません。たとえば、"555" を送信すると、長さ (変数 'test' で示される) が 0 として返されます。これは、行 int test の後にブレーク ポイントを設定し、変数 fullString と test にカーソルを合わせることで判断しました。どうにかしてポインタを fullString などに逆参照する必要がありますか? 私はObjective Cの完全な初心者です。どうもありがとう

-(NSString*) getTruncatedString:(NSString *) fullString {

    int test = fullString.length;
    int test2 = MIN(0,test);
    NSRange stringRangeTest = {0, MIN([@"Test" length], 20)};

    // define the range you're interested in
    NSRange stringRange = {0, MIN([fullString length], 20)};

    // adjust the range to include dependent chars
    stringRange = [fullString rangeOfComposedCharacterSequencesForRange:stringRange];

    // Now you can create the short string
    NSString* shortString = [_sentToBrainDisplay.text substringWithRange:stringRange];

    return shortString;

}

コメントと調査に基づいて、私はそれを機能させました。みんなありがとう。誰かが興味を持っている場合:

-(NSString*) getTruncatedString:(NSString *) fullString {

if (fullString == nil || fullString.length == 0) {
    return fullString;
}
NSLog(@"String length: %d", fullString.length);

// define the range you're interested in
NSRange stringRange = {MAX(0, (int)[fullString length]-20),MIN(20, [fullString length])};


// adjust the range to include dependent chars
stringRange = [fullString rangeOfComposedCharacterSequencesForRange:stringRange];

// Now you can create the short string
NSString* shortString = [fullString substringWithRange:stringRange];

return shortString;

}

4

1 に答える 1

1

@"555"ではなく、このメソッドに渡しているかどうかを確認してください"555"。また、より良い方法は

NSLog(@"String length: %d", fullString.length)

于 2013-01-05T16:54:13.547 に答える