- Объекты String и объекты данных - это две разные вещи. Не называйте строковую переменную «data» - вы настраиваете себя и всех, кто читает код для замешательства, а ваша программа - для ошибок.
@selector
не является переменной. Это часть буквального выражения.
Либо определите свою переменную, которая содержит строку myButtonClick
вместо init
, либо сделайте ее переменной экземпляра, и создайте строку и назначьте ее alloc
.
Если это переменная экземпляра, вы также исправите утечку, которую у вас есть (вы, dealloc
но никогда не отпустите ее), пока вы отпустите строку myButtonClick
. См. Запись управления памятью в компетенциях Cocoa Core для более подробной информации о том, почему ваш текущий код неверен.
Я также смущен тем, что myButtonClick
должно делать. Он, конечно, не нажимает кнопку - все, что она делает, это создать ее (что вам будет намного легче делать в IB). Кроме того, вы даже не помещаете кнопку в представление; вы создаете его и настраиваете, а затем метод заканчивается.