NSDate *now = [NSDate date];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy"];
NSString *stringFromDate = [formatter stringFromDate:now];
CGContextShowTextAtPoint(context, 50, 50, stringFromDate, 5);
我没有得到具体日期?编译时也会收到警告 警告:从不兼容的指针类型
传递'CGContextShowTextAtPoint'的参数4答案 0 :(得分:2)
该函数的原型是:
void CGContextShowTextAtPoint (
CGContextRef c,
CGFloat x,
CGFloat y,
const char *string,
size_t length
);
但是在第4个参数中,您传递* NSString **(而不是函数原型所需的* const char **)。
您可以使用NSString的 cStringUsingEncoding 方法将NSString转换为C字符串,例如:
CGContextShowTextAtPoint(context, 50, 50, [stringFromDate cStringUsingEncoding:NSASCIIStringEncoding]);
答案 1 :(得分:1)
stringFromDate
的价值是多少?你有什么期待?
编译时也会收到警告 警告:传递参数4 'CGContextShowTextAtPoint'来自 不兼容的指针类型
如果查看CGContextShowTextAtPoint
的文档,您会发现第四个参数需要是char*
,而不是NSString*.
你有:
GContextShowTextAtPoint(context, 50, 50, stringFromDate, 5);
你想:
GContextShowTextAtPoint(context, 50, 50, [stringFromDate UTF8String], 5);