我是新手,所以如果我在这里做一些可怕的事情,请原谅我。
我试图以我在示例中指定的格式获取用户生日,但在scanf
部分中收到错误:format specified type char * but the argument has type NSString
我该如何解决?这是我的代码:
int main(int argc, const char * argv[])
{
@autoreleasepool {
NSString *input;
NSLog(@"Please enter your birthday, for example: 09-01-1984");
scanf("%s", &input);
NSDate *today = [NSDate date];
NSDate *bDay = [NSDate dateWithNaturalLanguageString:input];
NSLog(@"%lu", [bDay elapsedDays:today]);
}
return 0;
}
答案 0 :(得分:3)
sscanf()
是C库的一部分,NSString
是Foundation Objective-C框架的一部分,你不能把它们混合起来。
试试这个:
int main(int argc, const char * argv[])
{
@autoreleasepool {
char input[80];
NSLog(@"Please enter your birthday, for example: 09-01-1984");
scanf("%s", input);
NSDate *today = [NSDate date];
NSDate *bDay = [NSDate dateWithNaturalLanguageString:[NSString stringWithUTF8String:input]];
NSLog(@"%lu", [bDay elapsedDays:today]);
}
return 0;
}