Tag: nssortdescriptor

如何在iPhone中以降序对数组进行sorting

我想按降序对数组进行sorting,我可以按升序对数组进行sorting,这里是我的代码按升序sorting, NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"year" ascending:NO]; NSArray * descriptors = [NSArray arrayWithObjects:sortDescriptor, nil]; sortedArray = [array sortedArrayUsingDescriptors:descriptors]; dictionaryWithSortedYears = [[NSMutableDictionary alloc] init]; NSString *tempDateKey = nil; for (TreeXmlDetails *list in sortedArray) { id obj = [dictionaryWithSortedYears objectForKey:list.year]; if(!obj) { if(tempDateKey == nil) { arrayFromList = [[NSMutableArray alloc] init]; tempDateKey = list.year; } } […]

NSSortDiscriptor对正值进行sorting

在我的核心数据中,我要求按距离(NSNumber [double])按升序排列x个对象。 问题是它也给我回负数。 我知道这是有道理的,但我只想要正数,我该怎么办呢? NSManagedObjectContext *context = generateManagedObjectContext(); NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init]; NSEntityDescription *entity = [NSEntityDescription entityForName:kCORE_DATA_ALL_TRAPS_ENTITY inManagedObjectContext:context]; [fetchRequest setEntity:entity]; // Specify how the fetched objects should be sorted NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:DISTANCE_TO_CLOSE_POINT ascending:YES]; [fetchRequest setSortDescriptors:[NSArray arrayWithObjects:sortDescriptor, nil]]; // Limit the restlus to specific number [fetchRequest setFetchLimit:numberOfTraps]; NSError *error = nil; […]

sorting描述符不正确或一致

我在4个实体之间使用sorting描述符和集合谓词。 实体一:workoutType关系训练1到多个实体二:workoutSet关系天1到多个实体三:workoutDay关系练习1到多个实体四:workoutExercise 倒数也被设置。 我收到的问题是sortDescriptor在幕后正常工作,但是显示的内容不正确。 例如在我的workoutDay实体,我有stringtypes的属性dayName。 储存值:第1天,第2天,第3天。 当在tableview中运行显示值时:第1天,第3天,第2天。 当我点击从上到下的日子: 第1天….下一个视图控制器显示正确的第1天的数据。 第3天….下一个视图控制器显示第2天的数据(不是第3天)。 第2天….下一个视图控制器显示第3天的数据(不是第2天)。 所以sorting描述符正在工作,但显示的内容与正在select的内容不相关。 码: -(void)fetchWorkoutDays { NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"WorkoutDay"]; NSPredicate *predicate = [NSPredicate predicateWithFormat:@"workoutSet = %@", self.workoutSet]; [fetchRequest setPredicate:predicate]; NSSortDescriptor *sortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"dayName" ascending:YES]; [fetchRequest setSortDescriptors:@[sortDescriptor]]; self.fetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:self.managedObjectContext sectionNameKeyPath:nil cacheName:nil]; //self.fetchedResultsController.delegate = self; NSError *error; if (![self.fetchedResultsController performFetch:&error]) { […]

被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 […]

使用NSSortDescriptorsorting结束时简单的方法?

我正在使用NSSortDescriptorsorting一个NSArray的NSDictionary项目。 很好的工作,只是我需要的…除了我想为我的sorting键的空白值的字典项目显示在sorting列表的末尾。 有没有办法轻松完成这个? 或者我将不得不创build一些自定义的sortingfunction? 不,我不想把它设置为DESC顺序…我想sorting结果看起来像A,A,B,B,C,空白,空白。

将新条目添加到每个新条目的表顶部的表视图控制器

我到目前为止有一个工作的应用程序,基本上包括以下内容: 使用核心数据,我有一个表视图控制器与添加button模式调用新的视图控制器提示用户添加文本到三个字段。 当用户点击保存时,该条目被添加到表格视图控制器中作为填充了信息的字幕单元。它运行良好。 我感到困惑并且一直在寻找答案的是,每个新条目都被添加到单元格的底部,所以如果有足够的单元格填充屏幕,新添加的条目将被添加到底部。 我真的很想得到每个新的条目到表格视图单元格的顶部。 我已经实现了按字母顺序sorting的sortDescriptors,但也是如此,但是我想要在表视图的顶部添加新的条目,而不pipe起始字符。 我的FetchRequest目前看起来像这样: NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] initWithEntityName:@"Transaction"]; NSSortDescriptor *sortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"whoBy.name" ascending:YES selector:@selector(localizedCaseInsensitiveCompare:)]; fetchRequest.sortDescriptors = [NSArray arrayWithObject:sortDescriptor]; self.transactions = [[managedObjectContext executeFetchRequest:fetchRequest error:nil]mutableCopy]; 这是将条目添加到数据库的代码: NSManagedObject *person = [NSEntityDescription insertNewObjectForEntityForName:@"Person" inManagedObjectContext:context]; [person setValue:self.nameTextField.text forKey:@"name"]; [transaction setValue:person forKey:@"whoBy"]; 任何想法将不胜感激!

在复杂对象上定制NSSortDescriptor

这是我的第一篇文章,如果我不尊重所有的惯例,尽pipe我会尽我所能。 我总是find解决我的问题的方法,但是我完全停留在一个相当复杂的cocoa问题上。 我想在CoreData对象的列表上实现一个复杂的sorting。 我有一个由Book对象组成的目录,它可以是佐贺(第一本书及其续集)的一部分。 简化的结构如下所示: @interface Book : NSManagedObject @property (nonatomic, retain) NSString * title; @property (nonatomic, retain) NSNumber * tomaison; //volume numbering @property (nonatomic, retain) Saga *fromSaga; @interface Saga : NSManagedObject @property (nonatomic, retain) NSString * title; 我正试图在我的CoreData数据库,在书上执行一个查询: NSEntityDescription *entity = [NSEntityDescription entityForName:@"Book" inManagedObjectContext:context]; 我需要三个步骤来sorting: 1)根据本书的stream派(不包括在上面的代码中,因为它不需要) NSSortDescriptor* mainSort = [[NSSortDescriptor alloc] initWithKey:@"ofGenre.title" ascending:YES selector:@selector(localizedCaseInsensitiveCompare:)]; […]

sorting一个NSArray使用另一个NSArray作为指导

所以,想象一下你有几个数组,颜色和形状,就像这样: Colors: { Yellow, Blue, Red } Shapes: { Square, Circle, Diamond } 现在,如果我想按照字母顺序排列颜色,我可以这样做: NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:nil ascending:YES selector:@selector(localizedCompare:)]; NSArray *sortedColors = [colors sortedArrayUsingDescriptors:[NSArray arrayWithObject:sortDescriptor]]; [sortDescriptor release]; 但是,如何将形状sorting为与重新sorting颜色相同的顺序。 我不是说按照字母顺序放置graphics – 我的意思是把形状按颜色的字母顺序排列…?

核心数据提取请求的复杂sorting

我有一个NSEntity ( Cloth )的属性( type ),这是从预定义的NSString值列表,如雨披,夹克,大衣,礼服,顶部,西装等填充。 我想要获取所有布料logging,以便logging按照定义的type顺序进行sorting。 即雨披的所有logging在上面,然后是外套,然后是外套,然后是礼服,然后是上衣,然后是西装等等。 Poncho‎ … Poncho‎ … Poncho‎ … Jacket … Jacket … Coat … Coat … Coat … Gown … Gown … Top … Top … Top … Top … Suit … Suit … 这个顺序不是升序或降序,而是定制的。 如何获取Clothlogging,以便按照(定义的)顺序返回它们?

NSSortDescriptor和NSPredicate进行sorting和筛选

我有一个tableView有5个不同的可能的数据源,取决于一个标志对象(NSNumber *)dataSourceAssignment 。 我已经实现了一个NSSortDescriptor ,通过(float)confidenceRating dataSource进行sorting。 数据源被分配后,我需要能够通过(NSString *)genre过滤dataSource数组。 我知道如何使用NSPredicate来过滤我的数组,但我不知道如何有效地做到这一点,当有5-6不同genrestring可以检查。 用户能够“检查”多个stream派,基本上根据select的stream派切换轨道的显示。 我正在考虑在NSUserDefaults *defaults中创build一个字典,如下所示: ["genre1" = YES, "genre2" = NO, "genre3" = YES …] 。 如何设置NSPredicate以使用types字典过滤数据源,而无需使用带有条件负载的巨大if / switch语句。 这是我在执行NSPredicate之前的代码: – (void)assignDataSource { switch (dataSourceAssignment.intValue) { case 0: dataSource = [NSMutableArray arrayWithArray:tracksArray]; break; case 1: dataSource = [NSMutableArray arrayWithArray:favoriteTracks]; break; case 2: dataSource = [NSMutableArray arrayWithArray:topTracksOfTheWeek]; break; case […]