Цель C Функция Вопрос - PullRequest
0 голосов
/ 10 марта 2011

Эй, ребята, проверьте это.У меня есть функция, которая обрабатывает для меня строку.Независимо от того, что он делает, я просто хочу знать, если это возможно, чтобы эта функция возвращала результат для места, где она была выполнена.Я имею в виду, проверьте это:

[self priceFormat:@"1"];
priceLabel.text = price;


-(void) priceFormat:(NSString*)price {

price = @"2";

}

Я просто хочу, чтобы моя функция обрабатывала строку и возвращала ее в то же место, где она была выполнена.

Спасибо!

1 Ответ

3 голосов
/ 10 марта 2011

Три способа сделать это

Один способ, используя указатель

- (void)priceFormat:(NSString **)price {
  *price = @"2";
}

Вт два, используя переменную экземпляра

Вместо этого вам может понадобиться ивар. В интерфейсе (чаще всего h файл) вашего класса:

NSString *price;

и в реализации (файл m или mm):

- (void)priceFormat:(NSString *)price {
  price = @"2";
}

Я создал пример этого здесь .


Если вы хотите, чтобы цена была доступна и другим объектам (не только self), вы можете создать свойство и синтезировать его. Тогда используйте self.price = @"2"; вместо этого. Подробнее об этом здесь: http://MacDeveloperTips.com/objective-c/objective-c-properties-setters-and-dot-syntax.html

Просто убедитесь, что вы указали свойство copy (NSString используется)!


Способ три с использованием return

Обратите внимание, что вы также можете вернуться напрямую из метода:

- (NSString *)priceFormat:(NSString *)price {
  return @"2";
}

priceLabel.text = [self priceFormat:@"1"];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...