2009-03-02 2 views
4

мне нужно вернуть NSString из функции:Objective-C NSString Вопрос

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

    return *myString;  
} 

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

ответ

13

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

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

    // do something with myString 
    return myString;   
} 

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

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

+0

Замечательно! Этот ОП говорит спасибо :) – Alan

+0

@Alan. Если это поможет, вы можете принять ответ. – Abizern