<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Ouch!<div class=""><br class=""></div><div class="">This is a side effect of ObjC lightweight generics being imported as Swift generics in Swift 3.0.</div><div class=""><br class=""></div><div class="">Since there is no common superclass that satisfies NSCopying &amp; NSSecureCoding and the fact that&nbsp;NSSecureCoding has static requirements means you can’t do it (at least without hacks such as extending NSObject to conform to both protocols or creating a wrapper class and creating a non-generic subclass of CNLabeledValue and using it instead).</div><div class=""><br class=""></div><div class="">For now, you have to use &nbsp;<br class=""><div class=""><div dir="ltr" class=""><div class=""><div class=""><span class="" style="font-family: monospace, monospace;"><br class=""></span></div><div class=""><span class="" style="font-family: monospace, monospace;">var toExcludeOrCopy : AnyObject?</span></div></div></div></div><div class=""><br class=""></div><div class="">This is worthy of a bug report and points to a serious issue: The “limitations” that result from importing ObjC lightweight generics as Swift generics. One possible solution can be implementation of “<a href="https://lists.swift.org/pipermail/swift-evolution/Week-of-Mon-20170102/029919.html" class="">Enhanced Existentials</a>”.</div><div class=""><br class=""></div><div class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Jan 9, 2017, at 11:23 AM, German Laullon via swift-users &lt;<a href="mailto:swift-users@swift.org" class="">swift-users@swift.org</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class="">Hi All<div class=""><br class=""></div><div class="">I just upgrade to Swift 3. After open and convert my codes I found lots of errors. One of them is about CNLabeledValue.<div class="">&nbsp;</div><div class="">With Swift 2.3, it works well with:</div><div class="">&nbsp;</div><div class=""><font face="monospace, monospace" class="">var toExcludeOrCopy : CNLabeledValue? &nbsp;</font></div><div class="">&nbsp;</div><div class="">With Swift 3, it gives me the error message:</div><div class=""><font face="monospace, monospace" class="">Reference to generic type 'CNLabeledValue' requires arguments in &lt;...&gt;.</font></div><div class=""><font face="monospace, monospace" class=""><br class=""></font></div><div class="">After I fixed it with XCode, it changed to:</div><div class="">&nbsp;<span style="font-family:monospace,monospace" class="">var toExcludeOrCopy : CNLabeledValue&lt;AnyObject&gt;? &nbsp;</span></div><div class="">&nbsp;</div><div class="">However, Xcode gives me error message with this fix:</div><div class=""><font face="monospace, monospace" class="">Type 'AnyObject' does not conform to protocol 'NSCopying'.</font></div><div class=""><br class=""></div><div class="">I know the error is because of the generic type but I don't know how to declare with CNLabeledValue. My purpose is to store any the CNLabeledValue including phone number, email, address etc to one var.</div><div class="">Any help will be appreciate.</div><div class=""><div class="gmail_signature"><div dir="ltr" class=""><div class=""><div dir="ltr" class=""><div class=""><br class=""></div><div class="">Germán Laullón<br class=""><br class=""></div></div></div></div></div></div>
</div></div>
_______________________________________________<br class="">swift-users mailing list<br class=""><a href="mailto:swift-users@swift.org" class="">swift-users@swift.org</a><br class="">https://lists.swift.org/mailman/listinfo/swift-users<br class=""></div></blockquote></div><br class=""></div></div></body></html>