Size: a a a

2020 November 27

IG

Ivan Gaydamakin in iOS Fathers
как тогда блет
источник

IG

Ivan Gaydamakin in iOS Fathers
непоняяятно
источник

IG

Ivan Gaydamakin in iOS Fathers
мне надо кароч передать протокол и по нему в итоге объект отыскать в массиве
источник

M

Mayor in iOS Fathers
Ivan Gaydamakin
мне надо кароч передать протокол и по нему в итоге объект отыскать в массиве
а массив из чего?
источник

M

Mayor in iOS Fathers
массив должен быть из equatable элементов
источник

IG

Ivan Gaydamakin in iOS Fathers
Mayor
массив должен быть из equatable элементов
из вьюх
источник

M

Mayor in iOS Fathers
Ivan Gaydamakin
из вьюх
такое тебе надо?
источник

M

Mayor in iOS Fathers
Ivan Gaydamakin
из вьюх
или такое
источник

IG

Ivan Gaydamakin in iOS Fathers
Mayor
такое тебе надо?
да, только мне в аргументе протокол надо указывать
источник

M

Mayor in iOS Fathers
Ivan Gaydamakin
да, только мне в аргументе протокол надо указывать
так у меня на скрине в аргументе протокол указан
источник

M

Mayor in iOS Fathers
Second это протокол
источник

M

Mayor in iOS Fathers
так шо, оно?
источник

IG

Ivan Gaydamakin in iOS Fathers
Mayor
так шо, оно?
да оно, только мне получается var array твой надо в функцию вынести
источник

IG

Ivan Gaydamakin in iOS Fathers
и аргументом передавать протокол
источник

M

Mayor in iOS Fathers
Ivan Gaydamakin
да оно, только мне получается var array твой надо в функцию вынести
не понял
источник

IG

Ivan Gaydamakin in iOS Fathers
func popTo(type: Protocol, _ callback: (() -> ())? = nil) {
     let currentView = self.views.last!

  let foundIndex =  self.views.firstIndex {
       return $0.conforms(to: type)
   }
   guard let index = foundIndex else { return}
   let views = self.views[0...index]
   print(views)

}

типо так
источник

M

Mayor in iOS Fathers
Ivan Gaydamakin
func popTo(type: Protocol, _ callback: (() -> ())? = nil) {
     let currentView = self.views.last!

  let foundIndex =  self.views.firstIndex {
       return $0.conforms(to: type)
   }
   guard let index = foundIndex else { return}
   let views = self.views[0...index]
   print(views)

}

типо так
можно проще
источник

M

Mayor in iOS Fathers
print(views.pop(to: Protocol.self))
источник

M

Mayor in iOS Fathers
extension Array {
 @discardableResult
 mutating func pop<T>(to type: T.Type) -> Self {
   if let index = firstIndex(where: { $0 is T }) {
     removeLast(count - index - 1)
   }
   
   return self
 }
}
источник

IG

Ivan Gaydamakin in iOS Fathers
self.navigation.popTo(type: TRChoiceEmailOrPhoneViewProtocolType.self) {}
func popTo<T>(type: T.Type, _ callback: (() -> ())? = nil) {}

(51, 36) Cannot convert value of type 'T.Type' to expected argument type 'Protocol'

хм
источник