Хранение данных UIActionSheet в массив в CoreData - PullRequest
0 голосов
/ 01 марта 2012

У меня есть проблема, которая беспокоит меня. Я должен хранить информацию из Таблицы действий пользовательского интерфейса в iOS в массиве, предоставленном в CoreData. Проблема в том, что лист действий выполняет функцию, отличную от той, которая использовалась для хранения данных.

Первый: вот соответствующий код для хранения данных:

(... checking for all fields; working properly)

} 
else
{
    newContact = [NSEntityDescription insertNewObjectForEntityForName:@"Contacts" inManagedObjectContext:context];
    [newContact setValue:Salutation.text forKey:@"Salutation"];
    [newContact setValue:FirstName.text forKey:@"FirstName"];
    [newContact setValue:LastName.text forKey:@"LastName"];
    [newContact setValue:CompanyName.text forKey:@"CompanyName"];
    [newContact setValue:EmailAddress.text forKey:@"EmailAddress"];
    [newContact setValue:PhoneNumber.text forKey:@"PhoneNumber"];
    newContact.Disinfector =[NSNumber numberWithBool:yesWasher];
    newContact.Sterilizer =[NSNumber numberWithBool:yesSterilizer];
    newContact.CoffeeMaker =[NSNumber numberWithBool:yesCoffeeMaker];

    Salutation.text = @"";
    FirstName.text = @"";
    LastName.text = @"";
    CompanyName.text = @"";
    EmailAddress.text = @"";
    PhoneNumber.text = @"";
    yesWasher = YES;
    [WasherTog setImage:[UIImage imageNamed:@"checked.png"] forState:UIControlStateNormal];
    yesSterilizer = YES;
    [SterilizerTog setImage:[UIImage imageNamed:@"checked.png"] forState:UIControlStateNormal];
    yesCoffeeMaker = YES;
    [CoffeeMakerTog setImage:[UIImage imageNamed:@"checked.png"] forState:UIControlStateNormal];

Во-вторых, вот код листа действий и обработки ввода:

- (void)showSalutation:(id)sender
{
UIActionSheet *popUp = [[UIActionSheet alloc] initWithTitle:@"Choose Salutation" delegate:self cancelButtonTitle:@"Cancel" destructiveButtonTitle:@"Cancel" otherButtonTitles:@"Mr.", @"Mrs.", @"Ms.", @"Dr.", nil];
popUp.actionSheetStyle = UIActionSheetStyleBlackTranslucent;
[popUp showInView:self.view];
[popUp release];
}

- (void)showSalutation:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex
{
if (buttonIndex == 0) 
{
    Salutation.text = @"Mr.";
}
else if (buttonIndex == 1)
{
    Salutation.text = @"Mrs.";
}
else if (buttonIndex == 2)
{
    Salutation.text = @"Ms.";
}
else if (buttonIndex == 3)
{
    Salutation.text = @"Dr.";
}
}

Я чувствую, что делаю много ошибок новичка, поэтому, пожалуйста, прости меня. Я учился кодировать все выходные, и вы, ребята, были моим лучшим другом в этом деле. Я просто не видел этой конкретной проблемы в сети.

Заранее спасибо за помощь!

Chris

1 Ответ

0 голосов
/ 01 марта 2012

Если вы просто пытаетесь выбрать строку на основе индекса кнопки, используйте переменную экземпляра. Например, вы можете объявить NSString * yourString в заголовке и использовать его следующим образом:

if (button.index == 0) { yourString = @"Mr." }

Следование этому шаблону должно работать, и вы можете делать все что угодно с yourString.

...