Objective-C NSString问题

Ala*_*lan 4 objective-c nsstring

我需要从函数返回一个NSString:

NSString myfunc ( int x )
{
    // do something with x  
    NSString* myString = [NSString string];
    myString = @"MYDATA";   
    // NSLog(myString);

    return *myString;       
}
Run Code Online (Sandbox Code Playgroud)

所以,我调用这个函数并得到*myString.那是指向数据的指针吗?我怎样才能获得"MYDATA"数据?

mou*_*iel 13

我会通过以下方式重写此函数:

NSString* myfunc( int x )
{
   NSString *myString = @"MYDATA";

   // do something with myString
   return myString;        
}
Run Code Online (Sandbox Code Playgroud)

在Objective-C中,更常见的是使用指向对象的指针,而不是对象本身,即在您的示例中NSString*,而不是NSString.

此外,@"MYDATA"已经是一个字符串,因此您无需在赋值之前分配和初始化myString.