Установка NSString в одном классе, вызов его в другом классе

Итак, я пытаюсь установить значение NSString в одном классе, а затем вызвать это NSString в другом классе и загрузить его в метку.

Я объявил строку в Class A как неатомарное сохраняемое свойство. В одном методе я устанавливаю значение строки.

В Class B я импортирую Class A, выделяю и инициализирую Class A, а затем пытаюсь установить текст метки с помощью:

ClassA *classA = [[ClassA alloc] init];
label.text = classA.string

Однако каждый раз, когда я это делаю, метка остается пустой.

Итак, почему мое свойство не сохраняет значение, которое я присваиваю ему в методе? NSString получает свое значение в методе tableView didSelectRowAtIndexPath.

Спасибо!

ИЗМЕНИТЬ Я понимаю, что допустил ошибку при вводе приведенного выше фрагмента кода и пропустил свойство "string" в объекте "classA". Простите меня. Комментарии ниже были несколько излишними, но спасибо, что указали на мою ошибку. Для справки: я знаю, как работают объекты, классы и свойства.


person Jerome Morrow    schedule 22.07.2011    source источник
comment
Хм? Это не имеет никакого смысла. Почему вы назначаете экземпляр класса текстовому свойству метки? В вашем фрагменте кода нет строк.   -  person Alex Wayne    schedule 23.07.2011
comment
У вас есть два разных экземпляра ClassA. Каждый из них имеет свои собственные копии любых строк, которые назначаются переменным экземпляра. Таким образом, создание нового ClassA никоим образом не будет извлекать строку, хранящуюся в другом экземпляре ClassA. Но помимо этого ваш код выше - ерунда - вы не можете назначить нестроку (и classA не является строкой) для маркировки текста.   -  person Hot Licks    schedule 23.07.2011
comment
(Другими словами, вы не знаете, что вы делаете, и вам нужно вернуться в школу, чтобы немного узнать об объектах и ​​классах.)   -  person Hot Licks    schedule 23.07.2011


Ответы (1)


Если это свойство, вы сможете сделать это, сказав label.text = classA.propertyName (как бы вы ни назвали свое свойство).

Например, предположим, что в ClassA вы создали NSString *stringToOutput, затем в Class B после создания экземпляра Class A вы должны указать, что label.text = classA.stringToOutput.

Надеюсь, это помогло!

person spamboy    schedule 22.07.2011
comment
Я имею в виду, да, это имеет смысл, и это то, что я делаю, но я все еще получаю пустые поля меток. Все, что работает, это если я войду в класс, где генерируются NSString, и использую: classB.label setText:stringToOutput по какой-то причине не получится вызвать объявленные строки в другом классе, они возвращают пустые. - person Jerome Morrow; 23.07.2011