Tag: sorting

IOSsortingNSDictionary

开始,这是我的代码: NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:url]]; NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil]; NSDictionary *publicTimeline = [NSJSONSerialization JSONObjectWithData:response options:0 error:&jsonParsingError]; for (NSObject* key in publicTimeline) { id value = [publicTimeline objectForKey:key]; NSLog(@"%@", key); } 我在web服务上采取了一些新闻,并在tableView中显示它。 我的问题是,这些消息不按顺序显示。 在我的web服务中,新闻是为了,例如我有: {"0":{"title":"News1"}} {"1":{"title":"News2"}} {"2":{"title":"News3"}} 等等.. 但在循环中,我“松”这个命令:/而我想按照这个顺序有我的消息,首先在索引“0”之后的“1”等新闻… (NSDictionary似乎松了这个命令,例如,我的代码后,我在我的tableview,消息:“2”,“0”,“1”,而不是我的新闻“0”,“1”,“ 2“)。 (我试过一些答案,但似乎没有在我的情况下:() SOmeone帮助我? 谢谢,

根据对应于特定属性的另一个数组中的值对对象数组sorting

比方说从JSON API中检索一个对象数组: [ { "id": 48, "name": "Bob" }, { "id": 198, "name": "Dave" }, { "id": 2301, "name": "Amy" }, { "id": 990, "name": "Colette" } ] // eg for ease of reproduction: let dataObjects = [ ["id": 48, "name": "Bob"], ["id": 198, "name": "Dave"], ["id": 2301, "name": "Amy"], ["id": 990, "name": "Colette"] ] […]

iOS复制音乐应用的字母顺序

我正在开发一个应用程序,涉及用户不得不从他们的音乐库中select一首歌曲。 当我在文档中进行研究时,我看到了媒体select器,但由于它不是以任何方式定制的,我决定最好实施我自己的音乐select器。 我遇到的问题是iOS按照字母顺序对歌曲名称进行sorting。 让我详细说一下。 当我通过MPMediaQuery获取歌曲列表时,该列表已经sorting,但不是以传统的字母顺序排列。 它使用的是一样的音乐应用程序,这是有点不同。 例如,它忽略了The和A这样的标题开头的一些词,因此“The A Team”被认为是以字母a和字母t的 “千年”开始 。 它也忽略括号等。 问题是我不知道它是如何决定先来的。 另外,如果没有自动化,这使得本地化不可能。 例如,我需要确切地知道如何做到这一点,以便我可以按部分区分歌曲。 所以,真正的问题是:有没有办法来复制这种sorting? 也许有一些方法可以将NSStrings分类到不同的类中(比如NSArray或者NSDictionary),也可以是本地化的东西,任何可以帮助我的东西。 先谢谢了

被NSMutableArraysorting使用描述符:exception

以下方法: – (NSMutableArray*) timeSortedBegins { NSMutableArray* begins = [self.spans valueForKey: @"begin"]; NSSortDescriptor *sort = [[NSSortDescriptor alloc] initWithKey: @"cycleOffsetObject" ascending: YES]; [begins sortUsingDescriptors: @[sort]]; return begins; } 抛出这个运行时exception: 2014-03-21 14:41:32.482 myValve[1741:60b] -[__NSArrayI sortUsingDescriptors:]: unrecognized selector sent to instance 0x16d7bc20 2014-03-21 14:41:32.484 myValve[1741:60b] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSArrayI sortUsingDescriptors:]: unrecognized selector sent […]

sorting在nsdictionary上给出不同的结果比在nsarraysorting

2天前我问了如何通过string对象中的第二个字sorting元素的问题 我在这里得到解决scheme 但现在我陷入了新的问题 考虑我有 nsarray与 – >名称和 nsdictionary使用相同的名称(nsarray)作为键值和电子邮件ID 而我的nsarray包含 "Test Teacher" "Anonymous" "Dok Teacher" 和我的nsdictionary包含 "Dok Teacher" –"a@g.com" "Anonymous" — "b@g.com" "Test Teacher" –"c@g.com" 因为我需要sorting这些数组和字典我使用上面的链接给出的方法sorting 但sorting后,我得到的数据如下 nsarraysorting第二个单词后 "Anonymous" "Test Teacher" "Dok Teacher" 在对值的第二个字进行sorting之后的nsdictionary "Anonymous" — "b@g.com" "Dok Teacher" –"a@g.com" "Test Teacher" –"c@g.com" 为什么老师和testing老师在词典和nsarray中的不同位置,使用同样的方法进行sorting。 以及如何让它们以相同的顺序排列和字典。 代码sortingnsarray: NSMutableArray *sortedArray = [NSMutableArray arrayWithArray:[teachersNames sortedArrayUsingComparator:^NSComparisonResult(id a, id b) { […]

从Parse中sorting结果不像按预期的那样使用query.limit

我为我的查询设置了一个限制,例如10,然后我想获得数据集中的最后10个结果,并按升序sorting! 好的,我知道我可以补充: [messages addDescendingOrder:@"createdAt"]; //OR [messages addAscendingOrder:@"createdAt"]; 但是这样做是因为它得到的前10条logging或最后10条logging…它不是自己sorting的结果! 升序基本上是设置结果将要开始的地方…从底部或顶部。 但是我想要将结果集返回为最后的10个结果,并且结果按升序排列。 相反,我得到的最后10个结果,但在表中,我有最新的一个在顶部和最老的一个是在表中的最后一个单元格…我想要的相反… 有没有办法让Parse处理这个问题而不是在设备本身上做逻辑? 任何帮助是极大的赞赏。

Swift 3 Firebase更新代码转换 – sorting

我之前在Udemy注册过一门课程,关于如何使用Swift和Firebase创build一个聊天应用程序,仅仅是因为我想了解一切是如何工作的。 不过,我一周后完成了课程。 这是几个月前,从那以后 – 对Firebase和Swift进行了更新,目前我正在努力将一些旧代码转换为新代码。 这是我目前正在努力的代码: func loadRecents() { firebase.child("Recent").queryOrdered(byChild: "userId").queryEqual(toValue: FIRAuth.auth()!.currentUser?.uid).observe(.value) { (snapshot:FIRDataSnapshot) in self.recents.removeAll() if snapshot.exists() { if let values = snapshot.value as? [String:AnyObject] { let sorted = (values as! NSArray).sortedArray(using: [NSSortDescriptor(key: "date", ascending: false)]) for recent in sorted { self.recents.append(recent as! NSDictionary) self.conversationTableView.reloadData() } } self.conversationTableView.reloadData() } self.conversationTableView.reloadData() } self.checkUnread() } 所以这只是在tableView中显示所有“聊天”的代码,我只是通过Date对其进行sorting,其中升序是错误的。 […]

如何在iOS中对有符号数组进行sorting?

这可能是一个简单的问题,但我不知道如何对有符号整数值进行sorting。 我的数组在sorting之前, pointsAry (-2,-7,-5,0,-3,2,-1,-4,1,3,-6) 使用后 NSArray * sortedArray = [pointsAry sortedArrayUsingComparator:^(id str1, id str2){ return [(NSString *)str1 compare:(NSString *)str2 options:NSNumericSearch]; }]; 结果 sortedArray : (-1,-2,-3,-4,-5,-6,-7,0,1,2,3) 对于有符号值sortedArray格式不正确,所以我需要 (-7,-6,-5,-4,-3,-2,-1,0,1,2,3) 如何sorting像上面的格式? 提前致谢。

iOS:NSFetchResultsControllersorting瞬态属性(Swift)

举例来说,我有一个名为Tasks的Entity其中包含一个名为date的Attribute和一个填充此Tasks Entity的UITableView 。 这是我目前看到的: 7-Dec-14 09:30 7-Dec-14 11:00 7-Dec-14 13:30 7-Dec-14 16:00 现在我们假设当前时间实际上是7-12月14日12:00,所以前2行已经过去了,而后面的2行却是未来的。 我想将它们分成UITableView组。 我发现我可以在实体上创build一个Transient Property,如下所示: var dateGroup: NSNumber { get { if date.compare(NSDate()) == NSComparisonResult.OrderedAscending { return 0 } else { return 1 } } } 这工作,现在显示UITableView如下,当我设置sectionNameKeyPath:“dateGroup”: Group 0 7-Dec-14 09:30 7-Dec-14 11:00 Group 1 7-Dec-14 13:30 7-Dec-14 16:00 我的麻烦是我怎么能得到UITableView实际显示这样的结果(所以未来任务上面的过期的任务): Group 1 7-Dec-14 13:30 […]

iOS – tableView,按降序对JSON数组进行sorting

这是JSON,它按降序显示,id_no {"users":[ {"id_no":"501", "type":"User", "country":"United Kingdom", "city":"London" } {"id_no":"500", "type":"Admin", "country":"United States", "city":"San Fransisco"} ] 这是我的代码: – (void)viewDidLoad { [super viewDidLoad]; NSURL *jsonURL = [NSURL URLWithString:@"http://example.com/sohw.php"]; NSData *jsonData = [NSData dataWithContentsOfURL:jsonURL]; NSError *error = nil; NSDictionary *dataDictionary = [NSJSONSerialization JSONObjectWithData:jsonData options:0 error:&error]; self.reports = [dataDictionary objectForKey:@"users"]; } 我想要做的是按照JSON文件在tableView上显示时按降序对users进行sorting。 我已经得到的答案,如: sortingNSArray的NSArray对象的最佳方法? 要么 : NSSortDescriptor *descriptor = […]