Ios 正在尝试创建一个表单以将联系人添加到设备中--如何处理空字段?
我有一个简单的表单,现在只包含四个字段(稍后我会添加更多)Ios 正在尝试创建一个表单以将联系人添加到设备中--如何处理空字段?,ios,iphone,objective-c,null,abaddressbook,Ios,Iphone,Objective C,Null,Abaddressbook,我有一个简单的表单,现在只包含四个字段(稍后我会添加更多) 名字 姓 家庭电子邮件 工作电子邮件 我只想将具有值的项目保存为新联系人。现在,如果我没有输入值,那么在联系人页面中,该值为“NULL”。处理这个问题的适当方法是什么 这是我的密码 #pragma mark - Add New Contacts Methods - (IBAction)savePublicContact:(UIBarButtonItem *)sender { CFErrorRef anEr
- 名字
- 姓
- 家庭电子邮件
- 工作电子邮件
#pragma mark - Add New Contacts Methods
- (IBAction)savePublicContact:(UIBarButtonItem *)sender {
CFErrorRef anError = NULL;
ABAddressBookRef addressBook = ABAddressBookCreateWithOptions(NULL, &anError);
ABRecordRef person = ABPersonCreate();
Person *personUserDefined = [self populatePersonToSave];
ABRecordSetValue(person,kABPersonFirstNameProperty,(__bridge CFTypeRef)(personUserDefined.firstName),&anError);
ABRecordSetValue(person,kABPersonLastNameProperty,(__bridge CFTypeRef)(personUserDefined.lastName),&anError);
ABMutableMultiValueRef emailMultiValue = ABMultiValueCreateMutable(kABPersonEmailProperty);
ABMultiValueAddValueAndLabel(emailMultiValue, (__bridge CFTypeRef)(personUserDefined.homeEmail), (CFStringRef)@"Home Email", NULL);
ABMultiValueAddValueAndLabel(emailMultiValue, (__bridge CFTypeRef)(personUserDefined.workEmail), (CFStringRef)@"Work Email", NULL);
ABRecordSetValue(person, kABPersonEmailProperty, emailMultiValue, &anError);
ABAddressBookAddRecord(addressBook, person, &anError);
if(ABAddressBookSave(addressBook, &anError)){
UIAlertView *alertsuccess = [[UIAlertView alloc] initWithTitle:@"Added Contact"
message:@"You successfully added a contact"
delegate:self
cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
[alertsuccess show];
}else{
UIAlertView *alertsuccess = [[UIAlertView alloc] initWithTitle:@"Contact Error"
message:(@"Contact was not able to be added")
delegate:self
cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
[alertsuccess show];
}
}
- (Person *)populatePersonToSave
{
Person *person = [[Person alloc] init];
if([self.firstNameToSaveTextField.text length] > 0){
person.firstName = self.firstNameToSaveTextField.text;
}
if([self.lastNameToSaveTextField.text length] > 0) {
person.lastName = self.lastNameToSaveTextField.text;
}
if([self.workEmailToSaveTextField.text length] > 0){
person.workEmail = self.workEmailToSaveTextField.text;
}
if([self.homeEmailToSaveTextField.text length] > 0){
person.homeEmail = self.homeEmailToSaveTextField.text;
}
return person;
}
#pragma标记-添加新联系人方法
-(iAction)savePublicContact:(UIBarButtonItem*)发件人{
CFErrorRef anError=NULL;
ABAddressBookRef addressBook=ABAddressBookCreateWithOptions(NULL,&A错误);
ABRecordRef person=ABPersonCreate();
如果([self isvalidDetails]){//使用新方法验证详细信息,则将根据验证返回是/否
Person*personUserDefined=[自填充PersonToSave];
ABRecordSetValue(person、kabbersonfirstnameproperty、(\uu-bridge-CFTypeRef)(personUserDefined.firstName)和一个错误);
ABRecordSetValue(person、kABPersonLastNameProperty、(uu桥CFTypeRef)(personUserDefined.lastName)和一个错误);
ABMutableMultiValueRef emailMultiValue=ABMultiValueCreateMutable(kabbersonemailproperty);
ABMultiValueAddValueAndLabel(emailMultiValue,(u桥CFTypeRef)(personUserDefined.homemail),(CFStringRef)@“Home Email”,NULL);
ABMultiValueAddValueAndLabel(emailMultiValue,(u桥CFTypeRef)(personUserDefined.workEmail),(CFStringRef)@“工作电子邮件”,NULL);
ABRecordSetValue(person、KabbersoneMailProperty、emailMultiValue和anError);
ABAddressBookAddRecord(地址簿、人员和错误);
if(ABAddressBookSave(地址簿和A错误)){
UIAlertView*alertsuccess=[[UIAlertView alloc]initWithTitle:@“已添加联系人”
消息:@“您已成功添加联系人”
代表:赛尔夫
取消按钮提示:@“确定”其他按钮提示:无,无];
[成功表演];;
}否则{
UIAlertView*alertsuccess=[[UIAlertView alloc]initWithTitle:@“联系人错误”
消息:(@“无法添加联系人”)
代表:赛尔夫
取消按钮提示:@“确定”其他按钮提示:无,无];
[成功表演];;
}
}
}
-(BOOL)isValidDetails{
BOOL isValidated=TRUE;
if([self.firstNameToSaveTextField.text length]0){
UIAlertView*alertsuccess=[[UIAlertView alloc]initWithTitle:@“必填字段”
消息:(@“请输入姓氏”)
代表:赛尔夫
取消按钮提示:@“确定”其他按钮提示:无,无];
[成功表演];;
isValidated=FALSE;
退货已确认;
}
如果([self.workEmailToSaveTextField.text length]>0){
UIAlertView*alertsuccess=[[UIAlertView alloc]initWithTitle:@“必填字段”
信息:(@“请输入工作电子邮件”)
代表:赛尔夫
取消按钮提示:@“确定”其他按钮提示:无,无];
[成功表演];;
isValidated=FALSE;
退货已确认;
}
如果([self.homemailtosavetextfield.text length]>0){
UIAlertView*alertsuccess=[[UIAlertView alloc]initWithTitle:@“必填字段”
信息:(@“请输入家庭电子邮件”)
代表:赛尔夫
取消按钮提示:@“确定”其他按钮提示:无,无];
[成功表演];;
isValidated=FALSE;
退货已确认;
}
退货已确认;
}
-(人*)populatePersonToSave
{
Person*Person=[[Person alloc]init];
如果([self.firstNameToSaveTextField.text length]>0){
person.firstName=self.firstNameToSaveTextField.text;
}
如果([self.lastNameToSaveTextField.text length]>0){
person.lastName=self.lastNameToSaveTextField.text;
}
如果([self.workEmailToSaveTextField.text length]>0){
person.workEmail=self.workEmailToSaveTextField.text;
}
如果([self.homemailtosavetextfield.text length]>0){
person.homemail=self.homemailtosavetextfield.text;
}
返回人;
}
#pragma标记-添加新联系人方法
-(iAction)savePublicContact:(UIBarButtonItem*)发件人{
CFErrorRef anError=NULL;
ABAddressBookRef addressBook=ABAddressBookCreateWithOptions(NULL,&A错误);
ABRecordRef person=ABPersonCreate();
如果([self isvalidDetails]){//使用新方法验证详细信息,则将根据验证返回是/否
Person*personUserDefined=[自填充PersonToSave];
ABRecordSetValue(person、kabbersonfirstnameproperty、(\uu-bridge-CFTypeRef)(personUserDefined.firstName)和一个错误);
ABRecordSetValue(person、kABPersonLastNameProperty、(uu桥CFTypeRef)(personUserDefined.lastName)和一个错误);
ABMutableMultiValueRef emailMultiValue=ABMultiValueCreateMutable(kabbersonemailproperty);
ABMultiValueAddValueAndLabel(emailMultiValue,(u桥CFTypeRef)(personUserDefined.homemail),(CFStringRef)@“Home Email”,NULL);
ABMultiValueAddValueAndLabel(emailMultiValue,(u桥CFTypeRef)(personUserDefined.workEmail),(CFStringRef)@“工作电子邮件”,NULL);
ABRecordSetValue(个人、kABPersonEmailProperty、em
#pragma mark - Add New Contacts Methods
- (IBAction)savePublicContact:(UIBarButtonItem *)sender {
CFErrorRef anError = NULL;
ABAddressBookRef addressBook = ABAddressBookCreateWithOptions(NULL, &anError);
ABRecordRef person = ABPersonCreate();
if([self isvalidDetails]){ //New method to validate details - this will return yes/no based on validation
Person *personUserDefined = [self populatePersonToSave];
ABRecordSetValue(person,kABPersonFirstNameProperty,(__bridge CFTypeRef)(personUserDefined.firstName),&anError);
ABRecordSetValue(person,kABPersonLastNameProperty,(__bridge CFTypeRef)(personUserDefined.lastName),&anError);
ABMutableMultiValueRef emailMultiValue = ABMultiValueCreateMutable(kABPersonEmailProperty);
ABMultiValueAddValueAndLabel(emailMultiValue, (__bridge CFTypeRef)(personUserDefined.homeEmail), (CFStringRef)@"Home Email", NULL);
ABMultiValueAddValueAndLabel(emailMultiValue, (__bridge CFTypeRef)(personUserDefined.workEmail), (CFStringRef)@"Work Email", NULL);
ABRecordSetValue(person, kABPersonEmailProperty, emailMultiValue, &anError);
ABAddressBookAddRecord(addressBook, person, &anError);
if(ABAddressBookSave(addressBook, &anError)){
UIAlertView *alertsuccess = [[UIAlertView alloc] initWithTitle:@"Added Contact"
message:@"You successfully added a contact"
delegate:self
cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
[alertsuccess show];
}else{
UIAlertView *alertsuccess = [[UIAlertView alloc] initWithTitle:@"Contact Error"
message:(@"Contact was not able to be added")
delegate:self
cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
[alertsuccess show];
}
}
}
-(BOOL)isValidDetails{
BOOL isValidated = TRUE;
if([self.firstNameToSaveTextField.text length] <= 0){ //Trim and check length
UIAlertView *alertsuccess = [[UIAlertView alloc] initWithTitle:@"Required field"
message:(@"Please enter firstname")
delegate:self
cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
[alertsuccess show];
isValidated = FALSE;
return isValidated;
}
if([self.lastNameToSaveTextField.text length] > 0) {
UIAlertView *alertsuccess = [[UIAlertView alloc] initWithTitle:@"Required field"
message:(@"Please enter lastname")
delegate:self
cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
[alertsuccess show];
isValidated = FALSE;
return isValidated;
}
if([self.workEmailToSaveTextField.text length] > 0){
UIAlertView *alertsuccess = [[UIAlertView alloc] initWithTitle:@"Required field"
message:(@"Please enter work email")
delegate:self
cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
[alertsuccess show];
isValidated = FALSE;
return isValidated;
}
if([self.homeEmailToSaveTextField.text length] > 0){
UIAlertView *alertsuccess = [[UIAlertView alloc] initWithTitle:@"Required field"
message:(@"Please enter home email")
delegate:self
cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
[alertsuccess show];
isValidated = FALSE;
return isValidated;
}
return isValidated;
}
- (Person *)populatePersonToSave
{
Person *person = [[Person alloc] init];
if([self.firstNameToSaveTextField.text length] > 0){
person.firstName = self.firstNameToSaveTextField.text;
}
if([self.lastNameToSaveTextField.text length] > 0) {
person.lastName = self.lastNameToSaveTextField.text;
}
if([self.workEmailToSaveTextField.text length] > 0){
person.workEmail = self.workEmailToSaveTextField.text;
}
if([self.homeEmailToSaveTextField.text length] > 0){
person.homeEmail = self.homeEmailToSaveTextField.text;
}
return person;
}
if (personUserDefined.firstName) {
ABRecordSetValue(person,kABPersonFirstNameProperty,(__bridge CFTypeRef)(personUserDefined.firstName),&anError);
}
if (personUserDefined.lastName) {
ABRecordSetValue(person,kABPersonLastNameProperty,(__bridge CFTypeRef)(personUserDefined.lastName),&anError);
}
ABMutableMultiValueRef emailMultiValue = ABMultiValueCreateMutable(kABPersonEmailProperty);
if (personUserDefined.homeEmail) {
ABMultiValueAddValueAndLabel(emailMultiValue, (__bridge CFTypeRef)(personUserDefined.homeEmail), (CFStringRef)@"Home Email", NULL);
}
if (personUserDefined.workEmail) {
ABMultiValueAddValueAndLabel(emailMultiValue, (__bridge CFTypeRef)(personUserDefined.workEmail), (CFStringRef)@"Work Email", NULL);
}
ABRecordSetValue(person, kABPersonEmailProperty, emailMultiValue, &anError);
ABAddressBookAddRecord(addressBook, person, &anError);