gpt4 book ai didi

objective-c - 如何按日期对 NSMutableArray 键进行排序(Facebook 生日?)

转载 作者:行者123 更新时间:2023-11-29 13:31:05 25 4
gpt4 key购买 nike

我正在尝试使用 NSSortDescriptor 按日期对 NSMutableArray *friends, key:birthday 进行排序,我的 NSLog 中的所有生日都为空,但名称仍在记录中。如果我取出我的 NSSortDescriptor,我的 NSLog 将再次给我这些值,想知道为什么我在通过 NSSortDescriptor 传递它们时丢失了这些值,以及我如何才能实现这一点。我正在使用 Hackbook 示例代码来学习 Facebook 集成,并修改了代码以给我 friend 的生日,我希望他们以 1/1 - 12/31 的格式对 1 月 - 12 月进行排序 是因为随机拉动好友列表的结果数据?提前谢谢你,我们一查清楚就一定要接受!

******************************CODE TO PULL KEYS BIRTHDAY AND NAMES FROM GRAPH API ******

- (void)getUserFriends {
currentAPICall = kAPIGraphUserFriends;
HackbookAppDelegate *delegate = (HackbookAppDelegate *)[[UIApplication sharedApplication] delegate];
NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
@"name, birthday", @"fields", nil];
[[delegate facebook] requestWithGraphPath:@"me/friends" andParams:params andDelegate:self];
[self apiGraphFriends];
}


***********RANDOMIZE LIST OF FRIENDS NAMES W BIRTHDAYS AND PUSH TO VIEW CONTROLLER

NSMutableArray *friends = [[NSMutableArray alloc] initWithCapacity:1];
NSArray *resultData = [result objectForKey:@"data"];
if ([resultData count] > 0) {
for (NSUInteger i=0; i<[resultData count] && i < 1000; i++) {
[friends addObject:[resultData objectAtIndex:i]];
}
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"birthday"
ascending:TRUE];
[friends sortUsingDescriptors:[NSArray arrayWithObject:sortDescriptor]];
[sortDescriptor release];

// LOG VALUES OF KEYS birthday and name FOR DEBUGGING

NSLog(@"name %@" , [friends valueForKey:@"name"]);
NSLog(@"birthday %@" , [friends valueForKey:@"birthday"]);

// Show the friend information in a new view controller
NSLog(@"Check#3");
APIResultsViewController *controller = [[APIResultsViewController alloc]
initWithTitle:@"Friends Birthdays"
data:friends action:@""];
[self.navigationController pushViewController:controller animated:YES];
[controller release];
} else {
[self showMessage:@"You have no friends."];
}
[friends release];

8/10 edit 在上面添加了代码,显示了我如何获得这些名字和生日,我相信它们都是 NSStrings per http://developers.facebook.com/docs/reference/api/user/只需向下滚动到生日部分。我还想提一下,非常重要,我有扩展权限,这不是权限问题,当我尝试对数组进行排序时我做错了什么,我相信我的经验不足是我自己最大的敌人。谢谢!

最佳答案

这可以帮助您找出问题所在。通常,这允许您使用自定义比较器对列表进行排序,但它可能有助于确定为什么 sortUsingDescriptors 使您的生日无效。也许您的一个或多个生日无效。

NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc]
initWithKey:@"birthday"
ascending:YES
comparator:^NSComparisonResult(id obj1, id obj2) {
NSLog(@"bday1 = '%@' bday2 = '%@'", obj1, obj2);
return NSOrderedSame;
}];

关于objective-c - 如何按日期对 NSMutableArray 键进行排序(Facebook 生日?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11892690/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com