Вопрос Objective-C NSString
-
03-07-2019 - |
Вопрос
Мне нужно вернуть 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 перед назначением.
Не связан с StackOverflow