- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
import Foundation
@objc protocol SomethingDoable {
func doSomething()
}
class Inner: SomethingDoable {
@objc func doSomething() {
print("Inner!")
}
}
@objc class Outer: NSObject {
let inner: SomethingDoable = Inner()
override func forwardingTarget(for aSelector: Selector!) -> Any? {
return inner
}
}
let outer = Outer()
outer.perform(#selector(SomethingDoable.doSomething))
Надеюсь, страйкер каждый раз перед тем, как посрать, семь раз вводит проверочный код.
Вот и все.!
а у Вас тут какие-то 'class Outer<T>: NSObject where T: SomethingDoable {'..
так не годится.
Но это бомба отложенного действия, как впрочем почти любое использование рантайма. Ты вызываешь селектор протокола у класса, который про этот протокол ни сном ни духом. И это говно работает.
Тот питается отлично.
Это про PHP
Какая-то питушня уровня экстрасенсорики, предрассудков и примет.
Раньше за такое на костре сжигали.
Какой Бельфегор )))
https://ic.pics.livejournal.com/alivano/37821658/71704/original.jpg
Трапы что ли?
ну да, всё дело в том, что мы ненавидим всё на свете
(а четветрая комментирует это, а пятая прочтёт коммент и мю оставить свой)
Да ладно, просто боятся что мужики на работе не оценят. Вот и всё.
https://megamitensei.fandom.com/wiki/Belphegor
https://upload.wikimedia.org/wikipedia/commons/7/74/Belphegor.jpg
трудно назвать его привлекательной женщиной
кстати, оно действительно напечатает "Inner", но упадет потом
в Swift классы неявно реализую протокол AnyObject и все, если нужна реализация NSObjectProrocol, то наследуем класс от NSObject явно
В документации[1] никакого упоминания, что "forwardingTarget должен вернуть наследника NSObjectProrocol", нет.
[1] https://developer.apple.com/documentation/objectivec/nsobject/1418855-forwardingtarget
Нахуй не нужно. Они с существующими бэкендами на Свифте не знают, что делать, а тут какой-то студак написал диплом при помощи сырой технологии и решил поделиться этим счастьем с миром.