Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
В принципе, объекты создаются достаточно легко в обоих языках. В Ruby можно просто послать классу сообщение new
myObject = myClass.new
в Objective-C же сначала необходимо выделить объекту память (alloc), а затем инициализировать его (init, initWith…)
MyClass * myObject = [[MyClass alloc] init];[MyController new]. Создастся этот контроллер как будто мы сделали [[MyController alloc] initWithNibName:@"MyController" bundle:nil] а «посылка сообщения» vs «вызов метода» — это просто как называть.
неужели так сложно признать «да, я ошибался»
Если обьект не может обработать сообщение в objc програма завалится.
давайте по простому — AS2 Можно в рантайме добавлять методы. Можно перехватывать вызов метода в том числе не существующего. Это сообщения?
насчет objc так я на нем пишу каждый день. и знаю что такое
unrecognized selector sent to instance
Это не разница между методом и сообщением. А разница между реализациями в разных языках.
[object method]; объекту посылается сообщение, и объект вызывает нужный метод, а не мы.Если мы не знает тип объекта, в Objective-C можно просто указать тип объекта id, что значит — переменная может принимать значение любого типа. Ведь фактически, id — указатель на произвольный объект.
Type * ivar. Достаточно написать @property(retain) Type* myProperty, после чего в реализации @synthesize myProperty = _myIVar и компилятор сам создаст соответствующую переменную
Objective-C: взгляд рубиста