Objective C Указатели - PullRequest
       6

Objective C Указатели

1 голос
/ 22 июня 2010

Меня действительно смущают указатели ... Думаю, я привык к другим языкам, в которых их нет.У меня есть следующий фрагмент кода:

- (void)setAccountNumber:(NSString *)accountNumber Pin:(NSString *)pin {
 myAccessNumber.text = accountNumber;
 myPin.text = pin;
}

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

Я также пробовал это, он также не работает

- (void)setAccountNumber:(NSString *)accountNumber Pin:(NSString *)pin {
 myAccessNumber.text = [[NSString alloc] initWithString:accountNumber];
 myPin.text = [[NSString alloc] initWithString:pin];
}

Спасибо за любую помощь.

Ответы [ 3 ]

3 голосов
/ 22 июня 2010

Вы уверены, что myAccessNumber и myPin действительно привязаны к вашему виду? Разве они не nil, когда вы отлаживаете?
В противном случае ваш первый фрагмент в порядке, нет необходимости в содержимом alloc / initWithString.

0 голосов
/ 22 июня 2010

Если переменные myAccessNumber и myPin являются фактическими метками в окне (UIOutlets), то вы хотите сделать:

- (void)setAccountNumber:(NSString *)accountNumber Pin:(NSString *)pin
{
  myAccessNumber.stringValue = accountNumber;
  myPin.stringValue = pin;
}

Метод stringValue определен для родителя NSTextField:NSControl.

0 голосов
/ 22 июня 2010

Вы хотите этот код:

[myAccessNumber setStringValue:accountNumber];
[myPin setStringValue:pin];

Это методы, которые вы бы использовали для помещения текста в метку или текстовое поле. Вы можете получить доступ к их значению, используя [myLabel stringValue];.

Несмотря на то, что вы можете использовать точечную нотацию для доступа к свойствам объекта, я бы сказал, что это более «какао-подобный» способ использования нотации с целевым действием.

Также необходимо убедиться, что выходы IBOutlet NSTextField *myAccessNumber из вашего файла .h подключены к фактическому интерфейсу в Интерфейсном Разработчике.

Кроме того, я бы не стал использовать Pin в вашем объявлении метода как обычно, стиль Какао говорит, что вы должны оставить первое слово строчными, а CamelCase - остальные слова в объявлении метода. (Для каждого параметра).

Например:

- (void)myMethodWithString:(NSString*)newString andData:(NSData*)newData;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...