<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><a href="https://swift.org/documentation/api-design-guidelines" class="">Swift API Design Guide</a>&nbsp;says :<div class=""><br class=""></div><div class="">&gt; &nbsp; &nbsp;The first argument to initializer and factory methods calls should not form a phrase starting with the base name</div><div class=""><br class=""></div><div class="">Specially, it advises us against writing things like :</div><div class=""><br class=""></div><div class=""><div class="">&gt; &nbsp; &nbsp;let foreground = Color(havingRGBValuesRed:&nbsp;32, green:&nbsp;64, andBlue:&nbsp;128) &nbsp;<br class=""></div><div class="">&gt; &nbsp; &nbsp;let newPart = factory.makeWidget(havingGearCount:&nbsp;42, andSpindleCount:&nbsp;14) &nbsp;<br class=""></div><div class="">&gt; &nbsp; &nbsp;let ref = Link(to: destination) &nbsp;</div></div><div class=""><br class=""></div><div class="">But in UIKit, the Swift Standard Library or in Foundation, we find code like :</div><div class=""><br class=""></div><div class=""><div class="">&nbsp; &nbsp;&nbsp;struct&nbsp;Array&lt;T&gt; {</div><div class="">&nbsp; &nbsp; &nbsp; &nbsp; // ...<br class="">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;init(repeating repeatedValue:&nbsp;Array.Element, count:&nbsp;Int)<br class="">&nbsp; &nbsp;&nbsp;}</div><div class=""><br class=""></div><div class="">&nbsp; &nbsp; struct Data {</div><div class="">&nbsp; &nbsp; &nbsp; &nbsp; // ...</div><div class="">&nbsp; &nbsp; &nbsp; &nbsp; init(referencing reference: NSData)</div><div class="">&nbsp; &nbsp; }</div><div class=""><br class="">&nbsp; &nbsp;&nbsp;class&nbsp;UIImage {</div><div class="">&nbsp; &nbsp; &nbsp; &nbsp; // …</div><div class="">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;init?(named name:&nbsp;String,&nbsp;in bundle:&nbsp;Bundle?,&nbsp;compatibleWith traitCollection:&nbsp;UITraitCollection?)<br class="">&nbsp; &nbsp;&nbsp;}</div><div class=""><br class=""></div><div class="">I understand that some UIKit methods inherit their ObjC declarations like&nbsp;<a href="https://developer.apple.com/documentation/uikit/uiimage/1624154-imagenamed?language=objc" class="">imageNamed:inBundle:compatibleWithTraitCollection:</a>.</div><div class="">But what about Foundation and the Swift Standard Library ?</div></div><div class=""><br class=""></div><div class="">I agree that the initializers respect the Swift fundamentals : clean, short, readable, and consistent.</div><div class="">But the guide seems to be clear about it : we should not write such things.</div><div class=""><br class=""></div><div class="">Could someone shed some light on this point for me ? The subtlety about it.</div></body></html>