В последнее время (пересмотр кода) Я наткнулся на странность, которая приводит к ошибке в нашей программе.Может ли NSUUID продлеваться по наследству? Как?
API мы используем имеет следующую реализацию (что я буду писать в Swift, даже если исходный код находится в Objective-C)
internal class MyUUID: NSUUID { }
Что является абсолютно бесполезным, так как он всегда возвращает пустой экземпляр.
Я собираюсь вставить код с моей площадки здесь для объяснения целей.
Например: создание простой NSUUID будет что-то вроде этого:
let a = NSUUID()
a.description //this creates a valid uuid
При создании MyUUID должен быть похож
let b = MyUUID()
b.description //it returns an instance, but is completely empty.
Но это не работает.
Осмотрев немного больше, обнаруживает, что инициализатор NSUUID создает экземпляр __NSConcreteUUID
, в то время как MyUUID не делает, и не имеет значения, что я пытаюсь сделать, он не создаст соответствующий UUID.
Итак, мой вопрос: возможно ли создать дочернюю реализацию NSUUID?
Можете ли вы дать мне образец этого? – rodrigoelp
Какой подход? –
Подход «objc_setSuperclass»: – rodrigoelp