static NSString *SectionOddNumbers = @"Odd Numbers";
static NSString *SectionEvenNumbers = @"Even Numbers";
@implementation ViewController
Π’Π΅ΠΏΠ΅ΡΡ, ΠΏΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ°Π±Π»ΠΈΡΠ½ΡΠΉ Π²ΠΈΠ΄, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ ΡΠ»ΠΎΠ²Π°ΡΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° Π΄Π°Π½Π½ΡΡ . ΠΠΎΡ ΠΏΡΠΎΡΡΠΎΠΉ ΠΌΠ΅ΡΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ ΡΠ»ΠΎΠ²Π°ΡΡ:
β (NSMutableDictionary *) dictionaryOfNumbers{
if (_dictionaryOfNumbers == nil){
NSMutableArray *arrayOfEvenNumbers =
[[NSMutableArray alloc] initWithArray:@[
@0,
@2,
@4,
@6,
]];
NSMutableArray *arrayOfOddNumbers =
[[NSMutableArray alloc] initWithArray:@[
@1,
@3,
@5,
@7,
]];
_dictionaryOfNumbers =
[[NSMutableDictionary alloc]
initWithDictionary:@{
SectionEvenNumbers: arrayOfEvenNumbers,
SectionOddNumbers: arrayOfOddNumbers,
}];
}
return _dictionaryOfNumbers;
}
ΠΠΎΠΊΠ° Π²ΡΠ΅ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ? ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡΠ΅, Ρ Π½Π°Ρ Π΄Π²Π° ΠΌΠ°ΡΡΠΈΠ²Π°, Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΈΡΠ»Π° (Π² ΠΎΠ΄Π½ΠΎΠΌ Π½Π΅ΡΠ΅ΡΠ½ΡΠ΅, Π² Π΄ΡΡΠ³ΠΎΠΌ β ΡΠ΅ΡΠ½ΡΠ΅). ΠΡ Π°ΡΡΠΎΡΠΈΠΈΡΡΠ΅ΠΌ ΠΌΠ°ΡΡΠΈΠ²Ρ Ρ ΠΊΠ»ΡΡΠ°ΠΌΠΈ SectionEvenNumbers ΠΈ SectionOddNumbers, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°Π½Π΅Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠ»ΠΈ Π² ΡΠ°ΠΉΠ»Π΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° Π²ΠΈΠ΄Π°. Π’Π΅ΠΏΠ΅ΡΡ ΠΈΠ½ΡΡΠ°Π½ΡΠΈΡΡΠ΅ΠΌ ΡΠ°Π±Π»ΠΈΡΠ½ΡΠΉ Π²ΠΈΠ΄:
β (void)viewDidLoad
{
[super viewDidLoad];
self.barButtonAction =
[[UIBarButtonItem alloc]
initWithTitle:@"Delete Odd Numbers"
style: UIBarButtonItemStylePlain
target: self
action:@selector(deleteOddNumbersSection:)];
[self.navigationItem setRightBarButtonItem: self.barButtonAction
animated: NO];
self.tableViewNumbers = [[UITableView alloc]
initWithFrame: self.view.frame
style: UITableViewStyleGrouped];
self.tableViewNumbers.autoresizingMask = UIViewAutoresizingFlexibleWidth |
UIViewAutoresizingFlexibleHeight;
self.tableViewNumbers.delegate = self;
self.tableViewNumbers.dataSource = self;
[self.view addSubview: self.tableViewNumbers];
}
ΠΠ°Π»Π΅Π΅ Π½ΡΠΆΠ½ΠΎ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠ°Π±Π»ΠΈΡΠ½ΡΠΉ Π²ΠΈΠ΄ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ Π²Π½ΡΡΡΠΈ ΡΠ»ΠΎΠ²Π°ΡΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° Ρ Π΄Π°Π½Π½ΡΠΌΠΈ:
β (NSInteger) numberOfSectionsInTableView:(UITableView *)tableView{
return self.dictionaryOfNumbers.allKeys.count;
}
β (NSInteger) tableView:(UITableView *)tableView
numberOfRowsInSection:(NSInteger)section{
NSString *sectionNameInDictionary =
self.dictionaryOfNumbers.allKeys[section];
NSArray *sectionArray = self.dictionaryOfNumbers[sectionNameInDictionary];
return sectionArray.count;
}
β (UITableViewCell *) tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath{
UITableViewCell *cell = nil;
cell = [tableView dequeueReusableCellWithIdentifier: CellIdentifier
forIndexPath: indexPath];
NSString *sectionNameInDictionary =
self.dictionaryOfNumbers.allKeys[indexPath.section];
NSArray *sectionArray = self.dictionaryOfNumbers[sectionNameInDictionary];
NSNumber *number = sectionArray[indexPath.row];
cell.textLabel.text = [NSString stringWithFormat:@"%lu",
(unsigned long)[number unsignedIntegerValue]];
return cell;
}
β (NSString *) tableView:(UITableView *)tableView
titleForHeaderInSection:(NSInteger)section{
return self.dictionaryOfNumbers.allKeys[section];
}
ΠΠ°Π²ΠΈΠ³Π°ΡΠΈΠΎΠ½Π½Π°Ρ ΠΊΠ½ΠΎΠΏΠΊΠ° ΡΠ²ΡΠ·Π°Π½Π° Ρ ΡΠ΅Π»Π΅ΠΊΡΠΎΡΠΎΠΌ deleteOddNumbersSection:. ΠΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ Π½Π°ΠΌ ΡΠ΅ΠΉΡΠ°Ρ ΠΏΡΠ΅Π΄ΡΡΠΎΠΈΡ Π·Π°ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°ΡΡ. Π¦Π΅Π»Ρ ΠΌΠ΅ΡΠΎΠ΄Π°, ΠΊΠ°ΠΊ Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· Π΅Π³ΠΎ Π½Π°Π·Π²Π°Π½ΠΈΡ[2], β Π½Π°ΠΉΡΠΈ ΡΠ°Π·Π΄Π΅Π», ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ Π²ΡΠ΅ΠΌ Π½Π΅ΡΠ΅ΡΠ½ΡΠΌ ΡΠΈΡΠ»Π°ΠΌ Π² ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ΅ Π΄Π°Π½Π½ΡΡ , Π½Π°ΠΉΡΠΈ ΡΠ°Π±Π»ΠΈΡΠ½ΡΠΉ Π²ΠΈΠ΄, Π° ΠΏΠΎΡΠΎΠΌ ΡΠ΄Π°Π»ΠΈΡΡ ΠΈΡΠΊΠΎΠΌΡΠΉ ΡΠ°Π·Π΄Π΅Π» ΠΈ ΠΈΠ· ΡΠ°Π±Π»ΠΈΡΡ, ΠΈ ΠΈΠ· ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° Π΄Π°Π½Π½ΡΡ . ΠΠΎΡ ΠΊΠ°ΠΊ ΡΡΠΎ Π΄Π΅Π»Π°Π΅ΡΡΡ:
β (void) deleteOddNumbersSection:(id)paramSender{
/* Π‘Π½Π°ΡΠ°Π»Π° ΡΠ΄Π°Π»ΡΠ΅ΠΌ ΡΠ°Π·Π΄Π΅Π» ΠΈΠ· ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° Π΄Π°Π½Π½ΡΡ . */
NSString *key = SectionOddNumbers;
NSInteger indexForKey = [[self.dictionaryOfNumbers allKeys]
indexOfObject: key];
if (indexForKey == NSNotFound){
NSLog(@"Could not find the section in the data source.");
return;
}
[self.dictionaryOfNumbers removeObjectForKey: key];
/* ΠΠ°ΡΠ΅ΠΌ ΡΠ΄Π°Π»ΡΠ΅ΠΌ ΡΠ°Π·Π΄Π΅Π» ΠΈΠ· ΡΠ°Π±Π»ΠΈΡΠ½ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π°. */
NSIndexSet *sectionToDelete = [NSIndexSet indexSetWithIndex: indexForKey];
[self.tableViewNumbers deleteSections: sectionToDelete
withRowAnimation: UITableViewRowAnimationAutomatic];
/* ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΡΠ±ΠΈΡΠ°Π΅ΠΌ Ρ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ ΠΊΠ½ΠΎΠΏΠΊΡ,
ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½Π° Π½Π°ΠΌ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ. */
[self.navigationItem setRightBarButtonItem: nil animated: YES];
}
ΠΡΠ΅ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ. Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π°ΠΆΠΌΠ΅Ρ ΠΊΠ½ΠΎΠΏΠΊΡ Π½Π° Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ, ΡΠ°Π·Π΄Π΅Π» Odd Numbers (ΠΠ΅ΡΠ΅ΡΠ½ΡΠ΅ ΡΠΈΡΠ»Π°) ΠΈΡΡΠ΅Π·Π½Π΅Ρ ΠΈΠ· ΡΠ°Π±Π»ΠΈΡΠ½ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π°. ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡΠ΅, Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΡΠ°Π·Π΄Π΅Π»Π° ΡΠ°Π±Π»ΠΈΡΠ½ΡΠΉ Π²ΠΈΠ΄ Π°Π½ΠΈΠΌΠΈΡΡΠ΅ΡΡΡ. ΠΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ ΠΌΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π»ΠΈ Π°Π½ΠΈΠΌΠ°ΡΠΈΠΎΠ½Π½ΡΠΉ ΡΠΈΠΏ UITableViewRowAnimationAutomatic ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ withRowAnimation: ΠΌΠ΅ΡΠΎΠ΄Π° deleteSections: withRowAnimation: ΡΠ°Π±Π»ΠΈΡΠ½ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π°. Π’Π΅ΠΏΠ΅ΡΡ Π·Π°ΠΏΡΡΡΠΈΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΡΠΌΡΠ»ΡΡΠΎΡΠ΅ iOS ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ Debug β Toggle Slow Animations (ΠΡΠ»Π°Π΄ΠΊΠ° β ΠΠΊΠ»ΡΡΠΈΡΡ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΡ Π°Π½ΠΈΠΌΠ°ΡΠΈΡ). ΠΠΎΡΠΎΠΌ ΠΏΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ Π½Π°ΠΆΠ°ΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ Π½Π° Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠΈΡΠ΅, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ. ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡΠ΅, ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π°Π΅ΡΡΡ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠΉ Π°Π½ΠΈΠΌΠ°ΡΠΈΠ΅ΠΉ (Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ΠΌ). ΠΡΠ°ΡΠΈΠ²ΠΎ, ΠΏΡΠ°Π²Π΄Π°? ΠΠΎΠ³Π΄Π° ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π·Π°Π²Π΅ΡΡΠΈΡΡΡ, ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ, ΠΊΠ°ΠΊ Π½Π° ΡΠΈΡ. 4.16.
Π ΠΈΡ. 4.16. Π Π°Π·Π΄Π΅Π», ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ Π½Π΅ΡΠ΅ΡΠ½ΡΠ΅ ΡΠΈΡΠ»Π°, ΡΠ΄Π°Π»Π΅Π½ ΠΈΠ· ΡΠ°Π±Π»ΠΈΡΠ½ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π°
ΠΡ ΡΠΆΠ΅ Π·Π½Π°Π΅ΡΠ΅, ΠΊΠ°ΠΊ ΡΠ΄Π°Π»ΡΡΡ ΡΠ°Π·Π΄Π΅Π»Ρ ΠΈΠ· ΡΠ°Π±Π»ΠΈΡΠ½ΡΡ Π²ΠΈΠ΄ΠΎΠ². ΠΠ΅ΡΠ΅ΠΉΠ΄Π΅ΠΌ ΠΊ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΡΡΠ΅Π΅ΠΊ. ΠΡ ΡΠΎΠ±ΠΈΡΠ°Π΅ΠΌΡΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΠΏΡΠΈ Π΅Π΅ Π½Π°ΠΆΠ°ΡΠΈΠΈ Π²ΠΎ Π²ΡΠ΅Ρ ΡΠ°Π·Π΄Π΅Π»Π°Ρ ΡΠ°Π±Π»ΠΈΡΠ½ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π° ΡΠ΄Π°Π»ΡΠ»ΠΈΡΡ Π²ΡΠ΅ ΡΡΠ΅ΠΉΠΊΠΈ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠ΅ ΡΠΈΡΠ»ΠΎΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π±ΠΎΠ»ΡΡΠ΅ 2. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΌΡ ΡΠ΄Π°Π»ΠΈΠΌ Π²ΡΠ΅ ΡΠ΅ΡΠ½ΡΠ΅ ΠΈ Π½Π΅ΡΠ΅ΡΠ½ΡΠ΅ ΡΠΈΡΠ»Π° Π±ΠΎΠ»ΡΡΠ΅ 2. ΠΡΠ°ΠΊ, ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΎΠ½Π½ΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ Π² ΠΌΠ΅ΡΠΎΠ΄Π΅ viewDidLoad ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° Π²ΠΈΠ΄Π°:
β (void)viewDidLoad {
[super viewDidLoad];
self.barButtonAction =
[[UIBarButtonItem alloc]
initWithTitle:@"Delete Numbers > 2"
style: UIBarButtonItemStylePlain
target: self
action:@selector(deleteNumbersGreaterThan2:)];
[self.navigationItem setRightBarButtonItem: self.barButtonAction
animated: NO];
self.tableViewNumbers = [[UITableView alloc]
initWithFrame: self.view.frame
style: UITableViewStyleGrouped];
self.tableViewNumbers.autoresizingMask =
UIViewAutoresizingFlexibleWidth |
UIViewAutoresizingFlexibleHeight;
self.tableViewNumbers.delegate = self;
self.tableViewNumbers.dataSource = self;
[self.view addSubview: self.tableViewNumbers];
}
ΠΠ° ΡΠΈΡ. 4.17 ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ Π² ΡΠΌΡΠ»ΡΡΠΎΡΠ΅ iPhone.
Π ΠΈΡ. 4.17. ΠΠ½ΠΎΠΏΠΊΠ°, ΡΠ΄Π°Π»ΡΡΡΠ°Ρ Π²ΡΠ΅ ΡΡΠ΅ΠΉΠΊΠΈ Ρ ΡΠΈΡΠ»Π°ΠΌΠΈ Π±ΠΎΠ»ΡΡΠ΅ 2
Π’Π΅ΠΏΠ΅ΡΡ ΠΊΠ½ΠΎΠΏΠΊΠ° Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ ΡΠ²ΡΠ·Π°Π½Π° Ρ ΡΠ΅Π»Π΅ΠΊΡΠΎΡΠΎΠΌ deleteNumbersGreaterThan2:. Π‘Π΅Π»Π΅ΠΊΡΠΎΡ β ΡΡΠΎ ΠΌΠ΅ΡΠΎΠ΄, ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠΉ Π² ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ΅ Π²ΠΈΠ΄Π°. ΠΠΎ ΠΏΡΠ΅ΠΆΠ΄Π΅, ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ ΠΊ Π΅Π³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠΌ, ΡΡΠΎ ΡΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ΄Π΅Π»Π°ΡΡ.
1. ΠΠ°ΠΉΡΠΈ ΠΎΠ±Π° ΠΌΠ°ΡΡΠΈΠ²Π° Ρ Π½Π΅ΡΠ΅ΡΠ½ΡΠΌΠΈ ΠΈ ΡΠ΅ΡΠ½ΡΠΌΠΈ ΡΠΈΡΠ»Π°ΠΌΠΈ Π² ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ΅ Π΄Π°Π½Π½ΡΡ ΠΈ ΡΠΎΠ±ΡΠ°ΡΡ ΠΈΠ½Π΄Π΅ΠΊΡΠ½ΡΠ΅ ΠΏΡΡΠΈ (ΡΠΈΠΏΠ° NSIndexPath) ΡΠΈΡΠ΅Π» Π±ΠΎΠ»ΡΡΠ΅ 2. ΠΠΎΠ·ΠΆΠ΅ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΡΠΈΠΌΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠ½ΡΠΌΠΈ ΠΏΡΡΡΠΌΠΈ Π΄Π»Ρ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ ΡΡΠ΅Π΅ΠΊ Π² ΡΠ°Π±Π»ΠΈΡΠ½ΠΎΠΌ Π²ΠΈΠ΄Π΅.
2. Π£Π΄Π°Π»ΠΈΡΡ Π²ΡΠ΅ ΡΠΈΡΠ»Π° Π±ΠΎΠ»ΡΡΠ΅ 2 ΠΈΠ· ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° Π΄Π°Π½Π½ΡΡ β ΠΊΠ°ΠΊ ΠΈΠ· ΡΠ»ΠΎΠ²Π°ΡΡ Π΄Π»Ρ Π½Π΅ΡΠ΅ΡΠ½ΡΡ ΡΠΈΡΠ΅Π», ΡΠ°ΠΊ ΠΈ ΠΈΠ· ΡΠ»ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΡΠ΅ΡΠ½ΡΡ .
3. Π£Π΄Π°Π»ΠΈΡΡ ΠΈΠ· ΡΠ°Π±Π»ΠΈΡΠ½ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΡΡΠ΅ΠΉΠΊΠΈ. ΠΠ½Π΄Π΅ΠΊΡΠ½ΡΠ΅ ΠΏΡΡΠΈ ΠΊ ΡΡΠΈΠΌ ΡΡΠ΅ΠΉΠΊΠ°ΠΌ ΠΌΡ ΡΠΎΠ±ΡΠ°Π»ΠΈ Π½Π° ΠΏΠ΅ΡΠ²ΠΎΠΌ ΡΡΠ°ΠΏΠ΅.
4. Π£Π΄Π°Π»ΠΈΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ Ρ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ. ΠΡΠ° ΠΊΠ½ΠΎΠΏΠΊΠ° Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ, Π²Π΅Π΄Ρ ΡΡΠ΅ΠΉΠΊΠΈ ΡΠΆΠ΅ ΡΠ΄Π°Π»Π΅Π½Ρ ΠΈ ΠΈΠ· ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° Π΄Π°Π½Π½ΡΡ , ΠΈ ΠΈΠ· ΡΠ°Π±Π»ΠΈΡΠ½ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π°. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Ρ ΠΏΡΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΡΡΠΎ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ ΡΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ. ΠΠΎ ΠΌΠ½Π΅ ΠΊΠ°ΠΆΠ΅ΡΡΡ, ΡΡΠΎ Π΄Π»Ρ ΡΠ΄ΠΎΠ±ΡΡΠ²Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΊΠ½ΠΎΠΏΠΊΡ Π»ΡΡΡΠ΅ ΠΏΡΠΎΡΡΠΎ ΡΠ΄Π°Π»ΠΈΡΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΡΠΊΠ»ΡΡΠ΅Π½Π½Π°Ρ ΠΊΠ½ΠΎΠΏΠΊΠ° Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ Π±ΡΠ΄Π΅Ρ Π΅ΠΌΡ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ Π±Π΅ΡΠΏΠΎΠ»Π΅Π·Π½Π°.
β (void) deleteNumbersGreaterThan2:(id)paramSender{
NSMutableArray *arrayOfIndexPathsToDelete =
[[NSMutableArray alloc] init];
NSMutableArray *arrayOfNumberObjectsToDelete =
[[NSMutableArray alloc] init];
/* Π¨Π°Π³ 1: ΡΠΎΠ±ΠΈΡΠ°Π΅ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΡΠ΄Π°Π»ΠΈΡΡ ΠΈΠ·
ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° Π΄Π°Π½Π½ΡΡ , Π° ΡΠ°ΠΊΠΆΠ΅ ΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡΠ½ΡΠ΅ ΠΏΡΡΠΈ. */
__block NSUInteger keyIndex = 0;
[self.dictionaryOfNumbers enumerateKeysAndObjectsUsingBlock:
^(NSString *key, NSMutableArray *object, BOOL *stop) {
[object enumerateObjectsUsingBlock:
^(NSNumber *number, NSUInteger numberIndex, BOOL *stop) {
if ([number unsignedIntegerValue] > 2){
NSIndexPath *indexPath =
[NSIndexPath indexPathForRow: numberIndex
inSection: keyIndex];
[arrayOfIndexPathsToDelete addObject: indexPath];
[arrayOfNumberObjectsToDelete addObject: number];
}
}];
keyIndex++;
}];
/* Π¨Π°Π³ 2: ΡΠ΄Π°Π»ΡΠ΅ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΈΠ· ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° Π΄Π°Π½Π½ΡΡ . */
if ([arrayOfNumberObjectsToDelete count] > 0){
NSMutableArray *arrayOfOddNumbers =
self.dictionaryOfNumbers[SectionOddNumbers];
NSMutableArray *arrayOfEvenNumbers =