从NSString创建的NSArray中的第一个元素以换行符开头

时间:2014-04-20 04:03:11

标签: nsstring nsarray

在下面的代码中,我传递的数组如下所示:

(适用 AAAA | BBBBB | CCCCC | DDDDD | EEEEE )

这只是另一个数组的元素。

我需要提取此元素的第一个组件并将其作为字符串返回。你可以轻松做到。是的,当我需要提取第2,第3,第4组件时。但是,当我尝试使用以下代码提取第一个组件时:

-(NSString*) navigationTypeIncludesSeparator : (NSMutableArray*) navPoint  {

   NSString* navigationTypeSelected;

   if ([navPoint isEqual: @"N/A"] || navPoint == nil)   
   {
       navigationTypeSelected = NAVDATA_DEFAULT;
   }

   else 
   {
       NSString* tempStr = [navPoint description];

       NSArray* arrayTemp = [tempStr componentsSeparatedByString:@"|"];

       navigationTypeSelected = [arrayTemp objectAtIndex:0];

       navigationTypeSelected = [navigationTypeSelected uppercaseString];
   }
   return navigationTypeSelected;
}

而不是AAAAA,我得到:

" \ n \ AAAAA"

我有什么遗漏?

谢谢!

1 个答案:

答案 0 :(得分:1)

您不应该使用description从数组中获取字符串值。这意味着要在控制台或用户界面中打印,并包含诸如换行符之类的奇怪内容。

如果你传入一个数组,你可以只格式化数组,因此值0是" AAAA",值1是" BBBB"等等?或者你可以传递字符串" AAAA | BBBBB | CCCCC | DDDDD | EEEEE"代替?在我的代码中,如果我这样做:

NSArray* arrayTemp = [@"AAAA|BBBBB|CCCCC|DDDDD|EEEEE" componentsSeparatedByString:@"|"];
NSString *navigationTypeSelected = [arrayTemp objectAtIndex:0];
navigationTypeSelected = [navigationTypeSelected uppercaseString];
NSLog(@"Answer: %@", navigationTypeSelected);

然后它很棒。但你可以轻松地传入一个数组并要求[someArray firstObject];