iOS開発ではNSString
、関数から使用して返すことはできますか?
例えば
(NSString * ) foo {
return @"";
}
これは目的の C メソッドではなく、単なる関数です
iOS開発ではNSString
、関数から使用して返すことはできますか?
例えば
(NSString * ) foo {
return @"";
}
これは目的の C メソッドではなく、単なる関数です
はい、objective-c オブジェクトは単なるポインターであるため、C 関数を作成してポインターを返すことができます。
NS_RETURNS_RETAINED NSString *myFunction() {
return [[NSString alloc] init];
}
の使用に注意してくださいNS_RETURNS_RETAINED
。これは、この関数が保持された値をレシーバーに返すこと、およびそれを解放する責任があることを ARC と静的アナライザーに示すヒントです。
自動解放された値を返していた場合は、NS_RETURNS_NOT_RETAINED
代わりに使用してみてください。
はい。ただし、構文が異なります。
NSString *foo()
{
return @"bar";
}
NSString *foo()
{
const char* yourString = "bar";
NSString* yourNSString = [NSString stringWithFormat:@"%s", yourString];
return yourNSString;
}
はい、なぜですか?チェック等NSStringFromRect()
参考にしてください。