- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 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))
Desktop # 0
Надеюсь, страйкер каждый раз перед тем, как посрать, семь раз вводит проверочный код.
guest # 0 ⇈
gost # 0 ⇈
Desktop # 0
KOPOHABuPYC # 0 ⇈
Вот и все.!
а у Вас тут какие-то 'class Outer<T>: NSObject where T: SomethingDoable {'..
так не годится.
guest # 0 ⇈
делегирование* из аутера в иннер? ну так это красиво конечно (джавоебы и шарпеи сосут), но унас в котлине это есть
"делегирование" это не то, о чем ты подумал: это не делегаты из cocoa, а передача всех вызовов другому объекту
Desktop # 0 ⇈
Но это бомба отложенного действия, как впрочем почти любое использование рантайма. Ты вызываешь селектор протокола у класса, который про этот протокол ни сном ни духом. И это говно работает.
guest # 0 ⇈
``forwardingTarget`` очень сильное колдуство конечно, довольно неожиданное для статически типизированных языков. Яблочные языки в этом вопросе скорее исключение
Desktop # 0 ⇈
guest # 0
Все глядят как бараны на новые ворота, и не могут ничего вразумительного сказать.
admin # 0 ⇈
guest # 0 ⇈
admin # 0 ⇈
guest # 0 ⇈
Даже если ты уверен, что я знаю PHP, то зачем же говорить об этом прилюдно? Мало-ли у кого какие грехи юности были
phpBidlokoder2 # 0 ⇈
guest # 0 ⇈
kak # 0 ⇈
Desktop # 0 ⇈
Тот питается отлично.
Это про PHP
guest # 0 ⇈
MAPTOBCKuu_nemyx # 0 ⇈
guest # 0 ⇈
Вот в 2000-м еще был перл конечно, а в 2003-м скорее уже пхп
MAKAKA # 0 ⇈
1024-- # 0 ⇈
Какая-то питушня уровня экстрасенсорики, предрассудков и примет.
admin # 0 ⇈
bormand # 0 ⇈
Раньше за такое на костре сжигали.
MAPTOBCKuu_nemyx # 0 ⇈
1024-- # 0 ⇈
Rooster # 0 ⇈
bormand # 0 ⇈
Какой Бельфегор )))
Desktop # 0 ⇈
https://ic.pics.livejournal.com/alivano/37821658/71704/original.jpg
KOPOHABuPYC # 0 ⇈
guest # 0 ⇈
женщины женского пола куда лучше женщин пола мужского
bormand # 0 ⇈
Трапы что ли?
KOPOHABuPYC # 0 ⇈
Stallman # 0 ⇈
gost # 0 ⇈
KOPOHABuPYC # 0 ⇈
Fike # 0 ⇈
ну да, всё дело в том, что мы ненавидим всё на свете
guest # 0 ⇈
"дорогой", -- сказала она, -- "у тебя такой большой. У меня, правда, больше был.."
Я про кадык..
4_14sun # 0 ⇈
(а четветрая комментирует это, а пятая прочтёт коммент и мю оставить свой)
bormand # 0 ⇈
Да ладно, просто боятся что мужики на работе не оценят. Вот и всё.
eukaryote # 0 ⇈
https://megamitensei.fandom.com/wiki/Belphegor
MAKAKA # 0 ⇈
https://upload.wikimedia.org/wikipedia/commons/7/74/Belphegor.jpg
трудно назвать его привлекательной женщиной
1024-- # 0 ⇈
KOPOHABuPYC # 0 ⇈
guest # 0
Кажется что напечает "Inner", пушо Outer не реализует SomethingDoable , а все нереализуемое он делегирует иннеру
Дексктоп?
vldalx # 0 ⇈
кстати, оно действительно напечатает "Inner", но упадет потом
guest # 0 ⇈
а как упадет? thread_bad_exec, в кору?
vldalx # 0 ⇈
в Swift классы неявно реализую протокол AnyObject и все, если нужна реализация NSObjectProrocol, то наследуем класс от NSObject явно
Desktop # 0 ⇈
В документации[1] никакого упоминания, что "forwardingTarget должен вернуть наследника NSObjectProrocol", нет.
[1] https://developer.apple.com/documentation/objectivec/nsobject/1418855-forwardingtarget
guest # 0
https://twitter.com/PSchmiedmayer/status/1265689512199495684?s=20
?
Desktop # 0 ⇈
Нахуй не нужно. Они с существующими бэкендами на Свифте не знают, что делать, а тут какой-то студак написал диплом при помощи сырой технологии и решил поделиться этим счастьем с миром.