Вопрос

Мне нужно вернуть NSString из функции:

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

    return *myString;       
}

Итак, я вызываю эту функцию и получаю *myString.Это указатель на данные?Как я могу получить доступ к данным "MYDATA"?

Это было полезно?

Решение

Я бы переписал эту функцию следующим образом:

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

   // do something with myString
   return myString;        
}

В Objective-C чаще всего работает с указателями на объекты, а не с самими объектами, т.е. в вашем примере с NSString*, не NSString.

Более того, @"MYDATA" это уже строка, поэтому вам не нужно выделять и инициализировать myString перед назначением.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top