在 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 并且可能不会出现任何问题。
我在这里造成的根本问题是什么?内联该方法可能会做我想做的事,但我宁愿修复它,并了解正确的方法是什么。