> On 6 Jul 2016, at 14:03, Zhao Xin <[email protected]> wrote:
> 
> According to the document of Swift 3, Array has already conformed protocol 
> RangeReplaceableCollection.

That’s exactly why I also want to conform my wrapper to that protocol? I think 
there’s a misunderstanding. I’m making a collection that can be subscripted 
with any index (that conforms to Strideable), but behaves like an array 
otherwise.

> 
> Zhaoxin
> 
> On Wed, Jul 6, 2016 at 7:09 PM, Tim Vermeulen via swift-users 
> <[email protected] <mailto:[email protected]>> wrote:
> RangeReplaceableCollection has three initialisers: init(), init(_:) and 
> init(repeating:count:). The latter two are implemented using the empty 
> initialiser. But why are these initialisers part of this particular protocol? 
> As far as I can tell, no other methods of this protocol depend on these 
> initialisers. The requirement of the empty initialiser makes it impossible to 
> have a collection conform to this protocol that needs additional data for its 
> initialisation.
> 
> For instance, I was making an array that works with any Strideable indices, 
> not just integers. A startIndex is needed for its initialisation, so I can’t 
> really conform it to RangeReplaceableCollection. If I do it anyways (with a 
> fatalError() in the required empty initialiser) everything seems to work just 
> fine, except for the protocol’s three initialisers.
> 
> Perhaps these initialisers should be moved to a (possible new) different 
> protocol?
> _______________________________________________
> swift-users mailing list
> [email protected] <mailto:[email protected]>
> https://lists.swift.org/mailman/listinfo/swift-users 
> <https://lists.swift.org/mailman/listinfo/swift-users>
> 

_______________________________________________
swift-users mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-users

Reply via email to