我有NSString
,当我NSLog
时,它看起来像这样:
(
Music,
Music,
"Ao Dai Fashion Show"
)
我想将其转换为NSArray,其中array [0] = Music,array [1] = Music,array [2] = Ao Dai Fashion Show。
我试图先使用以下方法删除()
NSString *jsonString = [str stringByReplacingOccurrencesOfString:@"()" withString:@""];
但是,我收到了unrecognized selector sent to instance
。
我怎样才能做到这一点?
由于
这是原始数组:
NSArray *oriArray = [dictionary objectForKey:someKey];
NSLog
:
(
{
"end_time" = "21:00";
"english_event" = Music;
"english_performer" = "DJ Happee From Channel 93.3";
"start_time" = "20:00";
},
{
"end_time" = "21:00";
"english_event" = Music;
"english_performer" = "Adam Cease";
"start_time" = "20:00";
},
{
"end_time" = "21:00";
"english_event" = "Ao Dai Fashion Show";
"english_performer" = "";
"start_time" = "20:00";
}
)
以下是获取包含内容NSArray
的新Music, Music, "Ao Dai Fashion"
的代码:
NSArray *newArry = [oriArray valueForKey:@"english_event"];
但是,当我尝试访问其索引时,newArry
给出了一个错误。
答案 0 :(得分:1)
我认为你记录的内容实际上并不是NSString
。请检查其类型,因为它似乎已经是NSArray
的实例。因此,你应该已经能够做你想做的事了。
答案 1 :(得分:1)
- (无效)解析:(的NSDictionary *)字典{
NSArray *oriArray = [dictionary objectForKey:someKey];
NSMutableArray *arrray=[[NSMutableArray alloc] init];
for (NSDictionary *dic in oriArray)
{
[arrray addObject:[dic objectForKey:@"english_event"]];
}
}
使用它可能对你有帮助....
答案 2 :(得分:1)
对不起,我没有评论的声誉,我只是想问这个,你试过 - NSArray * myArray = [stringOi componentsSeparatedByString:@“,”]; (*其中stringOi是你的str) 我尝试使用以下示例,这样可行,请尝试一下。
NSString * stringOi = [NSString stringWithFormat:@“( 音乐, 音乐, “奥黛时装秀” )“]; 的NSLog(@ “%@”,stringOi);
NSString *jsonString = [stringOi stringByReplacingOccurrencesOfString:@")" withString:@""];
NSString *jsonStringFinal = [jsonString stringByReplacingOccurrencesOfString:@"(" withString:@""];
NSLog(@"%@", jsonStringFinal);
NSArray *myArray = [jsonStringFinal componentsSeparatedByString:@","];
NSArray *myArray1 = [myArray objectAtIndex:0];
NSLog(@"%@",myArray1);
NSArray *myArray2 = [myArray objectAtIndex:1];
NSLog(@"%@",myArray2);
NSArray *myArray3 = [myArray objectAtIndex:2];
NSLog(@"%@",myArray3);
或者代替oriArray,您可以在字典dict中获取值,然后
NSArray * myArray1 = [dict objectForKey:@“english_event”]; NSString * Music = [myArray1 objectAtIndex:0];
希望最好......!
答案 3 :(得分:0)
两件事:
NSArray *myArray = [myDictionary objectForKey:@"Valid Key"]
并不意味着myArray
实际上是一个数组。它只是意味着它是一个指向您已投射为NSArray
的对象的指针。
您可以使用NSArray
将任何NSDictionary
或[myDictionaryOrArray description]
转换为字符串。
如果您不关心采取额外步骤并且知道当您注销阵列时,您会得到您想要/期望的内容,那么您肯定可以将您的字符串放入数组中。例如:
NSString *myString = [@[Music, Music, "Ao Dai Fashion Show"] description];
NSMutableArray *stringAsArray = [NSMutableArray arrayWithArray:[myString componentsSeparatedByString:@","]];
// this loop removes the white space before and after each word in the array
for (int i = 0; i < stringAsArray.count; i++) {
stringAsArray[i] = [stringAsArray[i] stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
}
如果您需要更长时间的样本代码,我将很乐意更新我的答案。
答案 4 :(得分:0)
(
Music,
Music,
"Ao Dai Fashion Show"
)
这是一个不是字符串的数组。
这个数组在每个索引中都有三个字符串,音乐,音乐,奥黛时装秀