为Twitter iOS修剪某些字符

时间:2012-08-03 19:50:49

标签: iphone xcode nsstring character

我觉得这太浪漫了,但我会尽我所能。我的应用程序内置了引号,每天都会更改。其中一些超过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并在 - 之前插入...。我怎么能这样做,或者至少修复我现有的代码?

1 个答案:

答案 0 :(得分: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之间的字符,这没有多大意义。

分割字符串以隔离引号的作者可能会很棘手,因为引号和作者名称可能都包含连字符。无论如何你想要尝试它,你可以做一些像这个春天解析问题的答案之一(http://stackoverflow.com/questions/2166809/number-of-occurrences-of-a-substring-in -an-nsstring)为字符串@“ - ”,并尝试并隔离最后一个实例。