在下面的代码中,我传递的数组如下所示:
(适用 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"
我有什么遗漏?
谢谢!
答案 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];