我正在建立一个"邀请朋友"特征。 它已经在工作我只有一个问题,我正在努力解决。 我正在检索我的联系人列表,每次选择联系人时,我都会将它们添加到我正在呼叫的NSMutableArray" selectedUser"。
因此,此时NSMutableArray中的每个项目都是"字典"一些价值观是"字典"同样。尤其是"手机"密钥我尝试访问和检索值键。
我想要完成的只是检索"电话号码"在字符串中将它们存储在NSArray中,然后我可以将其传递给[messageController setRecipients:recipe];配方只是NSStrings电话号码的阵列。
到目前为止,这是我的代码,我得到的是一个NSArray,其中包含多个NSArray,每个数组只有一个字符串作为电话号码。
NSArray *titles = [self.selectedUsers valueForKey:@"phones"];
NSArray *value = [titles valueForKey:@"value"];
NSLog(@"Output the value: %@", value);
NSArray *recipents = value;
这是我在日志中得到的内容
2016-01-04 12:27:59.721 InviteFriends[4038:1249174] (
(
"(305) 731-7353"
),
(
"(786) 306-2831"
),
(
"(305) 333-3297"
)
)
这是字典本身的日志
{
birthday = "";
company = "";
createdAt = "2015-09-06 16:14:18 +0000";
department = "";
emails = (
);
firstName = "Lola";
firstNamePhonetic = "";
id = 699;
jobTitle = "";
lastName = "";
lastNamePhonetic = "";
middleName = "";
nickName = "";
note = "";
phones = (
{
label = Home;
value = "(305) 503-3957";
}
);
prefix = "";
suffix = "";
updatedAt = "2015-09-23 23:31:25 +0000";
}
)
由于
答案 0 :(得分:1)
如果我正确地理解了这一点,那就在你写的那一行
titles
,
您正在尝试使用索引“value”索引充满字典的NSArray,这没有意义。您应该循环遍历value
数组,从每个字典元素中提取recipents
,然后将该元素附加到NSArray *titles = [self.selectedUsers valueForKey:@"phones"];
NSMutableArray *recipients = [[NSMutableArray alloc] init];
for (NSDictionary* dict in titles) {
NSString* value = [dict objectForKey:@"value"];
[recipients addObject:value];
}
NSLog(@"Phone Numbers: %@",recipients);
数组。
以下是一些示例代码,可以执行我认为您想要的内容。
NSURL *soundFileURL = [[NSBundle mainBundle] URLForResource:@"abc" withExtension:@"m4a"];
player = [[AVAudioPlayer alloc] initWithContentsOfURL:soundFileURL error:nil];
player.numberOfLoops = 1;
[player play];
答案 1 :(得分:0)
这是我提出的解决方案。
首先运行for循环以获取第一个键。然后嵌套另一个for循环以获取第二个键。
NSArray *values = self.selectedUsers;
NSMutableArray *recipients = [[NSMutableArray alloc] init];
NSArray *values = self.selectedUsers;
NSMutableArray *recipients = [[NSMutableArray alloc] init];
for (NSDictionary* dict in values) {
// Grabs phones key
NSDictionary *titles = [dict objectForKey:@"phones"];
for (NSDictionary* dict2 in titles) {
// Grabs the "value" key
NSString* value = [dict2 objectForKey:@"value"];
[recipients addObject:value];
}
}