【问题标题】:Style plist output from single NSString来自单个 NSString 的样式 plist 输出
【发布时间】:2014-04-30 16:19:06
【问题描述】:

“样式”可能是错误的词,但我正在寻找的是能够根据其内容操纵 NSString。

例如,我有一个 plist,它的字符串值是可变的,我希望将它做成一个列表形式。因此,如果字符串用某种分隔符标记,您是否能够操纵输出。

基本上想像这样制作一个字符串。

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commod

进入这个:

 - Lorem ipsum dolor sit amet,  
 - List item
 - consectetur adipisicing elit,  sed do  
 - eiusmod tempor incididunt ut

这甚至可能来自单个字符串吗?如果这是一个愚蠢的问题,我很抱歉。

【问题讨论】:

  • 为什么内部存储为单个字符串?
  • @droppy 它来自一个 plist。我应该以不同的方式存储它吗?必须来自 plist
  • 是的。以最方便的格式存储它以供您操作。
  • 你会推荐什么?数据来自 plist,并且具有不同数量的项目符号
  • 所以在 plist 中存储一个数组而不是字符串?

标签: ios nsstring plist


【解决方案1】:

您可以尝试以下方法。参数“plistString”是从plist文件中读取的原始字符串,“separator”是用作分隔字符串的字符串。

-(NSArray*) componentsInString:(NSString*)plistString separatedBy:(NSString*)separator{
      if (separator == nil)
        return nil; // Choose if you want to return nil or return an array with plistString object.
        NSArray *components = [plistString componentsSeparatedByString:separator]; // separator can't be nil else an unhandled exception is raised by NSString class.

      return components;
 }

【讨论】:

    【解决方案2】:

    如果你有分隔符,你可以像这样使用 NSScanner;

     -(NSMutableArray *) arrayOfStringsFromString:(NSString*) myPlistString seperatedBy:(NSString*) seperatorString{
         NSScanner *scanner = [NSScanner scannerWithString:myPlistString];  
         NSString *tempString;
         NSMutableArray *vars = [NSMutableArray new];
         while ([scanner scanUpToString:seperatorString intoString:&tempString]) {
            [vars addObject:[tempString copy]];
         }
       return vars;
     }
    

    【讨论】:

    • 我要补充一点,如果separatorString 是“简单”,你可以使用componentsSeparatedByCharactersInSet: 代替。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-01
    • 1970-01-01
    相关资源
    最近更新 更多