項目の文字列のリストをTableViewに格納する必要があり、文字列ごとにBool 値を格納する必要があります。ブール値と同時に?
sortUsingSelector や UsingComparator などのメソッドが存在することは知っていますが、NSDictionary ではキーを値でしかソートできないため、逆が必要です。
おそらく別のデータ構造を使用して、誰かが私を助けることができますか?
項目の文字列のリストをTableViewに格納する必要があり、文字列ごとにBool 値を格納する必要があります。ブール値と同時に?
sortUsingSelector や UsingComparator などのメソッドが存在することは知っていますが、NSDictionary ではキーを値でしかソートできないため、逆が必要です。
おそらく別のデータ構造を使用して、誰かが私を助けることができますか?
次のデータ構造をお勧めします。
次のように NSDictionaries の NSArray を使用します (プロパティにします)。
self.array = @[@{@"String": @"Zusuuuuu", @"bool": @0}, // I am really not creative ;-) Just wanted an unsorted example
@{@"String": @"YourContent", @"bool": @0},
@{@"String": @"YourOtherContent", @"bool": @1}];
次に、次のように並べ替えることができます。
self.array = [self.array sortedArrayUsingComparator:^NSComparisonResult(NSDictionary *aDictionary, NSDictionary *anotherDictionary) {
return [aDictionary[@"String"] compare:anotherDictionary[@"String"]];
}];
UITableView にデータを入力したい場合は、次のようにします。
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return self.array.count; //If you want them all in one section, easiest case
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
// ...
// Do all the initialization of your cell
// ...
cell.yourLabel.text = self.array[indexPath.row][@"String"];
cell.yourSwitch.on = ((NSNumber *)self.array[indexPath.row][@"bool"]).boolValue;
return cell;
}