заменяя self-> isa из-за устаревания Xcode 4.6

Я только что установил Xcode 4.6, и теперь я получаю новые ошибки в древнем коде, которым я управляю.

компилятор теперь жалуется на «Прямой доступ к объектно-c-isa isa устарел в пользу object_setClass () и object_getClass ()» и не будет строить.

так что мой вопрос в том, является ли это правильным эквивалентом?

self->isa = [CustomClass class]; 

заменены на:

 object_setClass(self, [CustomClass class]); 

Спасибо

Доступ к isa устарел в течение некоторого времени, инструменты просто не сказали вам об этом. Примечательно, что он устарел, по крайней мере, до тех пор, пока помеченные указатели существуют в obj-c.

И да, object_setClass() является подходящей заменой.

Тем не менее, зачем вам это нужно? Крайне редко, что замена класса объекта является подходящей, и единственным действительным случаем, о котором я могу думать, является то, что вы пытаетесь динамически подклассифицировать класс, чтобы вводить новое поведение в отдельные экземпляры без изменения класса в целом ( это, конечно, то, что вам, вероятно, не нужно делать).

  • Подкласс NSMutableDictionary
  • не может найти объявление интерфейса для «NSObject», суперкласс «GPXType»
  • ios - NSString URL-декодирование?
  • Как использовать NSLogger Desktop Client без участия разработчиков программы Mac Developer
  • Атрибуты компоновки пользовательских коллекций не устанавливаются перед применением к ячейке
  • Разница между NSArray.array / .new / @ / alloc-init
  • Симулятор iOS 9 не работает
  • CKS подписка на тип CKSscriptionOptionsFiresOnRecordUpdate не работает
  • iOS - использование AFNetworking с пользовательским классом NSURLProtocol
  • xcode 7 Аргументы типа не могут применяться к непараметрированному классу
  • UITableViewCell UIButton Selection
  • Interesting Posts

    Не удается отправить

    UIDocumentInteractionController делится через Instagram (и ТОЛЬКО Instagram)

    Как проверить, установлена ​​ли связь – Основные данные

    UIScrollView внутри UITableViewCell – No didSelect call

    Найти расстояние, скорость и ускорение с помощью геолокации api cordova / phonegap

    Как добавить Live Preview камеры в UIView

    openURL не открывает Safari

    UITextField Как проверить, нажата ли клавиша удаления

    Получить UIViewController из UIView?

    Xcode5 iOS7 – UIPopoverController Corner Radius

    Почему результаты API поиска iTtunes упорядочены иначе, чем результат поиска на устройстве iOS?

    Ошибка malloc – некорректная контрольная сумма для освобожденного объекта – объект, вероятно, был изменен после освобождения

    Гопарльпар Филиппольль Нуль Нуль Нульльльль Филипль Нульльльль Филипль Нульльльль Нуль Нульльтро Нуль Нульль Нульбальз Филип Нуль Нульльльльльльльльльльльльльльльльльльльльльльльльль делитольфальдепаркальгильгельгельге

    Обновленное приложение с новым явным идентификатором приложения, покупка в приложении. SKProductsRequest возвращает пустой список продуктов

    Я получаю: Завершение приложения из-за неперехваченного исключения «NSInvalidUnarchiveOperationException», причина: «Не удалось создать экземпляр класса с именем MKMapView»

    Давайте будем гением компьютера.