1

iOS開発ではNSString、関数から使用して返すことはできますか?

例えば

(NSString * ) foo {
  return @"";

} 

これは目的の C メソッドではなく、単なる関数です

4

4 に答える 4

4

はい、objective-c オブジェクトは単なるポインターであるため、C 関数を作成してポインターを返すことができます。

NS_RETURNS_RETAINED NSString *myFunction() {
    return [[NSString alloc] init];
}

の使用に注意してくださいNS_RETURNS_RETAINED。これは、この関数が保持された値をレシーバーに返すこと、およびそれを解放する責任があることを ARC と静的アナライザーに示すヒントです。

自動解放された値を返していた場合は、NS_RETURNS_NOT_RETAINED代わりに使用してみてください。

于 2012-08-30T11:55:45.983 に答える
1

はい。ただし、構文が異なります。

NSString *foo()
{
    return @"bar";
}
于 2012-08-30T11:53:36.353 に答える
1
NSString *foo()
{
    const char* yourString = "bar";
    NSString* yourNSString = [NSString stringWithFormat:@"%s", yourString];

    return yourNSString;
}
于 2012-08-30T11:56:05.250 に答える
0

はい、なぜですか?チェック等NSStringFromRect()参考にしてください。

于 2012-08-30T11:53:38.857 に答える