0

我有一个可变数组,其中包含一些用于表视图控制器的数组。数组包含标题和一些其他信息。我希望主数组中的数组按照它们包含的标题按字母顺序排序。我已经用键分配了标题:

NSString *title = @"objectTitle";
NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:_storedTitle.text, title, nil];
NSArray *newArray = @[@"Login", dict, _storedUsername.text, _storedPassword.text];

我将 newArray 存储在我的 masterArray 中并尝试对数组进行排序:

    //sort array alphabetically
    NSSortDescriptor *titleDescriptor = [[NSSortDescriptor alloc] initWithKey:@"objectTitle" ascending:YES];
    NSArray *sortDescriptors = @[titleDescriptor];
    NSArray *sortedArray = [_masterArray sortedArrayUsingDescriptors:sortDescriptors];

    _masterArray = sortedArray.copy;

这不起作用,因为我没有指定存储 titleDescriptor 的索引。我该怎么做呢?

当访问主数组中给定索引(索引)处的标题时,按如下方式完成:

     NSLog(@"%@", [[[_masterArray objectAtIndex:index] objectAtIndex:1] objectForKey:@"objectTitle"]);
4

1 回答 1

1

像这样修改您的代码:-

NSSortDescriptor *sortedDescriptor =
        [[[NSSortDescriptor alloc]
         initWithKey:@"objecttitle"
         ascending:YES
                selector:@selector(localizedCaseInsensitiveCompare:)] autorelease];

NSArray * descriptors =
[NSArray arrayWithObjects:sortedDescriptor, nil];
  NSArray * sortedArray =
 [array sortedArrayUsingDescriptors:descriptors];

NSlog(@"%@",sortedArray);
于 2013-10-06T15:29:27.773 回答