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;
getLength() の呼び出しが無効な暗黙の宣言であることを示す黄色の警告が Xcode に表示されます。それが具体的に指す文字は、getLength() 呼び出しの開始です。実行しようとすると、「Apple Mach-O Linker Error」が発生します。これは、_getLength が参照され、おそらく何も起こらないためです。
ここで私が引き起こしている根本的な問題は何ですか? メソッドをインライン化すると、私が望むことができるかもしれませんが、むしろそれを修正して、正しいアプローチが何であるかを理解したいと思います。