1
接下来的问题是......我必须在视图中绘制大量文本,并认为编写一个更简单的方法是个不错的主意。此代码是在我的观点:调用在NSView中绘制文本的方法时出现错误
- (void)drawText: (NSString*) tdString : (NSString*) schrift : (unsigned char) r : (unsigned char) g : (unsigned char) b :
(int) tsize : (int) xpos : (int) ypos;
{
NSPoint textPoint = NSMakePoint(xpos, ypos);
NSMutableDictionary *textAttrib = [[NSMutableDictionary alloc] init];
[textAttrib setObject:[NSFont fontWithName:schrift size:tsize] forKey:NSFontAttributeName];
[textAttrib setObject:[NSColor colorWithCalibratedRed:(r/255.0f) green:(g/255.0f) blue:(b/255.0f) alpha:1.0]forKey:NSForegroundColorAttributeName];
[tdString drawAtPoint:textPoint withAttributes:textAttrib];
}
- (void)drawBPM
{
NSString *bpmString = [NSString stringWithFormat:@"%d", bpm];
NSString *tbpmString = [NSString stringWithFormat:@"%d", mbpm];
if (bpm < 100){ drawText(bpmString,@"Helvetica Light", 140, 140, 140, 36, 100, 100);
}
if (bpm > 99 && bpm < 110){ drawText(bpmString,@"Helvetica Light", 140, 140, 140, 36, 100, 100);
}
if (bpm > 109 && bpm < 200){drawText(bpmString,@"Helvetica Light", 140, 140, 140, 36, 100, 100);
}
if (bpm > 199){ drawText(bpmString,@"Helvetica Light", 140, 140, 140, 36, 100, 100);
}
}
在编辑器中我得到警告“功能‘的drawText’的隐式声明是无效的C99”。在运行时,我收到一个错误:“架构x86_64 链接器命令失败,退出代码1失败。”。很明显,这个问题以前必须提出,但我无法弄清楚。谢谢!
好吧,我还有其他方法也没有宣布,他们的工作,是因为参数?是的,我从内部调用这些方法[NSView drawRect:] – fw2601 2013-02-23 11:08:41
@ fw2601是的,实际上我认为这个警告是因为你正在调用方法,就好像它是一个没有声明的C方法。执行我提到的修复,因为你应该没问题。 – trojanfoe 2013-02-23 11:18:10
我做了,它的工作原理!谢谢! – fw2601 2013-02-23 11:21:39