如何在目标C中的参数化构造函数中初始化NSDate?
问题描述:
这是在Objective C中编写的代码,我将值初始化为参数化的构造函数。尽管所有字段都正确输入,但我在输入NSDate
字段时遇到问题。下面给出的是构造函数声明,实现和最后的方法调用。如何在目标C中的参数化构造函数中初始化NSDate?
//初始化声明
-(instancetype)initWithParam1:(NSNumber*)customerId_ withParam2: (NSString*)firstName_ withParam3:(NSString*)lastName_ withParam4:(NSDate*)dateOfBirth_ withParam5:(NSString*)address_ withParam6:(NSNumber*)mobileNumber_;
//初始化定义
-(instancetype)initWithParam1:(NSNumber *)customerId_ withParam2:(NSString *)firstName_ withParam3:(NSString *)lastName_ withParam4:(NSDate *)dateOfBirth_ withParam5:(NSString *)address_ withParam6:(NSNumber *)mobileNumber_
{
self = [super init];
if(self)
{
self.customerId = customerId_;
self.firstName = firstName_;
self.lastName = lastName_;
self.dateOfBirth = dateOfBirth_;
self.address = address_;
self.mobileNumber = mobileNumber_;
}
return self;
//初始化呼叫
Customer *c1 = [[Customer alloc]initWithParam1:@1001 withParam2:@"Aman" withParam3:@"Zaidi" withParam4:@"22-05-1993" withParam5:@"Bangalore" withParam6:@9567812345];
如何在字段中输入日期的任何建议。对不起,对于天真,但我对Objective C完全陌生,而且我已经习惯了语法。
答
日期是一个字符串。
您需要的参数更改为NSString
... withParam4:(NSString *)dateOfBirth_ ...
,并在init()方法将字符串转换为NSDate
与NSDateFormatter
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.dateFormat = @"dd-MM-yyyy";
self.dateOfBirth = [formatter dateFromString:dateOfBirth_];
'@ “22-05-1993”'是一个' NSString',而不是'NSDate'。 – rmaddy
您传递给'param6'的值是'NSNumber',而不是'NSString'。电话号码应该是字符串,而不是数字。你不会在电话号码上进行数学运算。 – rmaddy
感谢您的更正。 :) – jRapp3r