0

言い過ぎかと思いますが、頑張ります。私のアプリには、毎日変化する見積もりが組み込まれています。中には140文字を超えるものもありますが、Twitterで共有できるようにしたいので、カウントを取得する方法が必要で、140文字を超えている場合は編集します。私がこれまでに持っているものは次のとおりです。

int maxChars = 140;
        int charsLeft = maxChars - [label1.text length];

        NSString *removed = [label1.text substringToIndex:[label1.text length] -  charsLeft];


        TWTweetComposeViewController* twc = [[TWTweetComposeViewController alloc] init];
        [twc setInitialText:removed];
        [self presentModalViewController:twc animated:YES];

label1 は、引用を表示する UILabel です。これは、140 文字を超える引用符でエラーをスローしています

[__NSCFString substringToIndex:]: Range or index out of bounds'

何かご意見は?もう一つ、思っていたこと。各引用は次で終わります

" - Person who said it

文字数を取得し、余分な文字 + 3 を削除し、- の前に ... を挿入できると考えていました。どうすればこれを行うことができますか、または少なくとも既存のコードを修正できますか?

4

1 に答える 1

1

さて、10文字のラベルが付いたコードを想像してみてください。

 int maxChars = 140;

 int charsLeft = maxChars - [label1.text length];

 NSString *removed = [label1.text substringToIndex:[label1.text length] -  charsLeft];

になります

 int charsLeft = 140 - 10; //charsLeft = 130

 NSString *removed = [label1.text substringToIndex:10 -  130];

これは、SubstringToIndexに0から-120までの文字を取得するように指示しますが、これはあまり意味がありません。

引用符と作成者名の両方にハイフンが含まれている可能性があるため、文字列を分割して引用の作成者を分離するのは難しい場合があります。とにかく試してみたい場合は、この春の解析の質問に対する回答の1つを提案するようなことを行うことができます(http://stackoverflow.com/questions/2166809/number-of-occurrences-of-a-substring-in -an-nsstring)文字列@ "-"の場合、最後のインスタンスを分離してみてください。

于 2012-08-03T20:07:14.467 に答える