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