Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/103.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何获取一行中NSString的前40个字符_Ios_Objective C_Nsstring_Nsmutablestring - Fatal编程技术网

Ios 如何获取一行中NSString的前40个字符

Ios 如何获取一行中NSString的前40个字符,ios,objective-c,nsstring,nsmutablestring,Ios,Objective C,Nsstring,Nsmutablestring,我有一根绳子。我试着取第一行的前40个字符。 到目前为止,我已经做到了这一点 NSString *text = @"Somewhere, something incredible is waiting to be known"; text = [text substringToIndex:40]; NSLog(OUTPUT : %@, text); OUTPUT : Somewhere, something incredible is wait 字符串正在等待未完成。我需要的实际输出是 R

我有一根绳子。我试着取第一行的前40个字符。 到目前为止,我已经做到了这一点

NSString *text = @"Somewhere, something incredible is waiting to be known";
text = [text substringToIndex:40];

NSLog(OUTPUT : %@, text); 
OUTPUT : Somewhere, something incredible is wait
字符串
正在等待
未完成。我需要的实际输出是

REQ OUTPUT : Somewhere, something incredible is waiting
我需要的前40个字符,但如果最后一个字是不完整的,它应该完成。 谁能告诉我怎么做吗?。
提前感谢。

检查最后一个单词是否不完整的逻辑

  • 获取第41个字符并检查它是否为空格
  • 如果是,则什么也不做
  • 否则,获取字符串中最后一个空格的位置(修剪过的字符串)并修剪父字符串直到该位置 如果可以扩展超过40个字符以完成字符串,则检查第40个字符后的第一个空格,并修剪父字符串直到该位置

    希望您能够将其转换为Obj-C代码

     NSString *text = @"Somewhere, something incredible is waiting to be known";
    __block NSInteger targetIndex = text.length;
    [text enumerateSubstringsInRange:NSMakeRange(0, text.length)
                               options:NSStringEnumerationByWords
                            usingBlock:
     ^(NSString *substring, NSRange substringRange, NSRange enclosingRange, BOOL *stop) {
         NSInteger lastIndex = substringRange.location + substring.length;
         if (lastIndex > 40) {
             targetIndex = lastIndex;
             *stop = true;
         }
     }];
    text = [text substringToIndex:targetIndex];
    NSLog(@"%@",text);
    
    日志

    在某处,一些不可思议的事情正在等待


    这是因为即使是空格也算作charactersHow我知道最后一个单词是否不完整吗?到目前为止你都做了哪些尝试?你能邮寄吗?