Hello,
Page 227:
-
It looks like the
func addDelegate(:)
should castdelegate
toAnyObject
let wrapper = DelegateWrapper(delegate as AnyObject)
delegateWrappers.append(wrapper) -
The
func addDelegate(:)
could have a check that would prevent adding the same object as a delegate twice. Currently, you can add the same object many times the the array.
Example:
func addDelegate(_ delegate: ProtocolType) {
if delegateWrappers.index(where: { $0.delegate === (delegate as AnyObject)
}) != nil {
assertionFailure("The object \(delegate) is already added as a delegate. Don't add it twice.")
return
}
let wrapper = DelegateWrapper(delegate as AnyObject)
delegateWrappers.append(wrapper)
}