<div dir="ltr">Hi all,<div><br></div><div><span class="gmail-Apple-tab-span" style="white-space:pre">        </span>I don’t have a formal proposal written up yet, but in my continued quest to make better-annotated Objective-C code, I had an idea for bridging <font face="monospace, monospace">nil</font> with primitives. Since in Objective-C we often use constant values to represent invalid values or <font face="monospace, monospace">nil</font>, the most obvious being <font face="monospace, monospace">NSNotFound</font>, could we use that as a shorthand for <font face="monospace, monospace">nil</font>? Something like this for <font face="monospace, monospace">NSArray</font>:</div><div><br></div><div><font face="monospace, monospace">- (NSUInteger NS_SWIFT_NIL(NSNotFound))indexOfObject:(ObjectType)anObject;</font></div><div><br></div><div><span class="gmail-Apple-tab-span" style="white-space:pre">        </span>This is a little verbose, so it could also work with a <font face="monospace, monospace">typedef</font>:</div><div><br></div><div><font face="monospace, monospace">typedef NSUInteger NS_SWIFT_NIL(NSNotFound) NSArrayIndex;</font></div><div><font face="monospace, monospace">- (NSArrayIndex)indexOfObject:(ObjectType)anObject;</font><br></div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">        </span>This would change the existing Swift interface to return an <font face="monospace, monospace">Int?</font> instead of an <font face="monospace, monospace">Int</font>. I see this as working both ways—converting these values to <font face="monospace, monospace">nil</font> when returning from Objective-C to Swift, and sending these values instead of <font face="monospace, monospace">nil</font> when Swift calls into Objective-C code.</div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">        </span>Is this worth writing up a proposal for? Is another, better method already in someone’s mind?</div><div><br clear="all"><div><div class="gmail_signature"><div dir="ltr"><div style="font-family:helvetica"><br></div><div style="font-family:helvetica">Jeff Kelley</div><div style="font-family:helvetica"><br></div><div style="font-family:helvetica"><a href="mailto:SlaunchaMan@gmail.com" style="color:rgb(17,85,204)" target="_blank">SlaunchaMan@gmail.com</a> | <a href="https://twitter.com/SlaunchaMan" style="color:rgb(17,85,204)" target="_blank">@SlaunchaMan</a> | <a href="http://jeffkelley.org/" style="color:rgb(17,85,204)" target="_blank">jeffkelley.org</a></div></div></div></div>
</div></div>