在Objective-C中,编译器抱怨以下代码行:
if ([self getLength(self.identifier)] < givenWidth * kMarginAllowance)
这将得到错误“Expected']'”,并且文本下方的插入号恰好在“getLength”之后的括号中。
我怀疑我的[self getLength(self.identifier)]在如何组合事物方面是错误的。
我想说的是“获取此对象的标识符,并调用此对象的getLength()方法。”
我尝试了几种排列方式,但我认为我没有使用正确的语法。
这种事情的正确语法是什么?
-
我的代码是:
-(float)getLength:(NSString *)text
{
UIFont *font = [UIFont fontWithName:@"Scurlock" size:20];
CGSize size = [text sizeWithAttributes:[NSDictionary dictionaryWithObjectsAndKeys:font, NSFontAttributeName, nil]];
return size.width;
}
-(void)getFormattedString:(float)givenHeight width:(float)givenWidth
{
NSMutableArray *workbench = [NSMutableArray array];
if (getLength(self.identifier) < givenWidth * kMarginAllowance)
{
[workbench addObject:self.identifier];
}
else
{
// [Under development]
}
}
随附的.h文件具有:
-(float) getLength:(NSString *)text;
Xcode中有一个黄色警告,指示对getLength()的调用是无效的隐式声明。它专门指向的字符是getLength()调用的开始。如果尝试运行它,则会收到“Apple Mach-O链接器错误”,这是因为引用了_getLength且大概不会打开任何内容。
我在这里引起的根本问题是什么?内联方法可以满足我的要求,但是我宁愿对其进行修复,并了解正确的方法是什么。
最佳答案
尝试
[self getLenght:self.identifier]
所以会像这样:
if ([self getLenght:self.identifier] < givenWidth * kMarginAllowance)
getLenght:
是一个Objective-C方法,但是您试图将其称为C函数。希望这可以帮助!