Я играл вокруг своего приложения, и я очень быстро переключал UISwitch (кто может сопротивляться?). Таким образом, я переключил его очень быстро в 10-15 раз, массив, который должен содержать данные из ячейки представления таблицы, в которые я имею свой переключатель, либо имеет дополнительные копии одной и той же ячейки, либо только одну копию (правильный случай) или никаких данных в нем вообще нет. Приложение прекрасно работает, если оно переключается с нормальной скоростью.UISwitch быстро переключался несколько раз
Я уверен, что этот сценарий на самом деле не случится с моими пользователями, но мне все еще интересно, почему это происходит.
Спасибо, Тея
Edit: Добавление кода. Этот метод вызывается каждый раз, когда переключатель переключается.
-(void)saveOptionChanged:(id) sender
{
UISwitch *sw = (UISwitch *) sender;
//int tag = current.tag;
BOOL status = (BOOL) [sw isOn];
NSInteger tag = sw.tag;
NSInteger row1 = tag%1000;
NSInteger section1 = (tag - row1)/1000;
DiagDetails *temp = [preferences getDiagElementAt:section1 row:row1];
temp.ICD9Code= [temp.ICD9Code stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
temp.ICD9Desc= [temp.ICD9Desc stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
NSLog(@"Adding %@ - %@",temp.ICD9Code, temp.ICD9Desc);
NSLog(@"tag = %ld, row = %ld, section = %ld",tag,row1,section1);
if(status) {
BOOL returnVal = YES;
returnVal = [currentPatient addICD9Code:temp];
if(!returnVal) {
UIAlertView *error = [[UIAlertView alloc] initWithTitle:@"Diagnosis add error" message:@"" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
[error show];
[error release];
[sw setOn:NO];
}
}
else {
DiagDetails *temp = [preferences getDiagElementAt:section1 row:row1];
[currentPatient removeICD9Code:temp.ICD9Code];
}
}
невозможно сказать, не видя код ... что делает переключатель? – prendio2