<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=""><div class="">Thanks a lot Jordan,</div><div class=""><br class=""></div><div class=""><span style="color: rgb(112, 61, 170); font-family: Menlo; font-size: 11px; background-color: rgb(255, 255, 255);" class="">ObjectIdentifier</span> seems pretty cool, looks like a way of representing everything identifiable in Swift (<span style="color: rgb(112, 61, 170); font-family: Menlo; font-size: 11px; background-color: rgb(255, 255, 255);" class="">AnyObject</span> and <span style="font-family: Menlo; font-size: 11px; background-color: rgb(255, 255, 255); color: rgb(186, 45, 162);" class="">Any</span><span style="font-family: Menlo; font-size: 11px; background-color: rgb(255, 255, 255);" class="">.Type</span>).</div><div class=""><br class=""></div><div class="">Easier to use and debug, would be perfect for what I am looking for !</div><div class=""><br class=""></div><div class="">The <span style="color: rgb(112, 61, 170); font-family: Menlo; font-size: 11px; background-color: rgb(255, 255, 255);" class="">ObjectIdentifier</span> documentation pretty much sums it up: </div><div class=""><i class=""><font color="#0433ff" class="">"In Swift, only class instances and metatypes have unique identities. There is no notion of identity for structs, enums, functions, or tuples."</font></i></div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo; color: rgb(186, 45, 162); background-color: rgb(255, 255, 255);" class=""><div style="margin: 0px; line-height: normal;" class="">class<span style="color: #000000" class=""> C {}</span></div><div style="margin: 0px; line-height: normal;" class="">struct<span style="color: #000000" class=""> S {}</span></div><div style="margin: 0px; font-size: 12px; line-height: normal; font-family: Helvetica; min-height: 14px;" class=""><br class=""></div><div style="margin: 0px; line-height: normal; color: rgb(0, 0, 0);" class=""><span style="color: #ba2da2" class="">let</span> c1 = <span style="color: #4f8187" class="">C</span>()</div><div style="margin: 0px; line-height: normal; color: rgb(0, 0, 0);" class=""><span style="color: #ba2da2" class="">let</span> c2 = <span style="color: #4f8187" class="">c1</span></div><div style="margin: 0px; font-size: 12px; line-height: normal; font-family: Helvetica; min-height: 14px;" class=""><br class=""></div><div style="margin: 0px; line-height: normal; color: rgb(62, 30, 129);" class="">print<span style="color: #000000" class="">(</span><span style="color: #d12f1b" class="">"c1 address: </span><span style="color: #000000" class="">\</span><span style="color: #d12f1b" class="">(</span><span style="color: #703daa" class="">Unmanaged</span><span style="color: #000000" class="">.</span>passUnretained<span style="color: #000000" class="">(</span><span style="color: #4f8187" class="">c1</span><span style="color: #000000" class="">).</span>toOpaque<span style="color: #000000" class="">()</span><span style="color: #d12f1b" class="">)"</span><span style="color: #000000" class="">)</span></div><div style="margin: 0px; font-size: 12px; line-height: normal; font-family: Helvetica; min-height: 14px;" class=""><br class=""></div><div style="margin: 0px; line-height: normal; color: rgb(112, 61, 170);" class=""><span style="color: #ba2da2" class="">let</span><span style="color: #000000" class=""> o1 = </span>ObjectIdentifier<span style="color: #000000" class="">(</span><span style="color: #4f8187" class="">c1</span><span style="color: #000000" class="">)</span></div><div style="margin: 0px; line-height: normal; color: rgb(112, 61, 170);" class=""><span style="color: #ba2da2" class="">let</span><span style="color: #000000" class=""> o2 = </span>ObjectIdentifier<span style="color: #000000" class="">(</span><span style="color: #4f8187" class="">c2</span><span style="color: #000000" class="">)</span></div><div style="margin: 0px; font-size: 12px; line-height: normal; font-family: Helvetica; min-height: 14px;" class=""><br class=""></div><div style="margin: 0px; line-height: normal; color: rgb(209, 47, 27);" class=""><span style="color: #3e1e81" class="">print</span><span style="color: #000000" class="">(</span>"o1 -> c1 = <span style="color: #000000" class="">\</span>(<span style="color: #4f8187" class="">o1</span>)"<span style="color: #000000" class="">)</span></div><div style="margin: 0px; line-height: normal; color: rgb(209, 47, 27);" class=""><span style="color: #3e1e81" class="">print</span><span style="color: #000000" class="">(</span>"o2 -> c2 = <span style="color: #000000" class="">\</span>(<span style="color: #4f8187" class="">o2</span>)"<span style="color: #000000" class="">)</span></div><div style="margin: 0px; font-size: 12px; line-height: normal; font-family: Helvetica; min-height: 14px;" class=""><br class=""></div><div style="margin: 0px; line-height: normal; color: rgb(0, 0, 0);" class=""><span style="color: #ba2da2" class="">if</span> <span style="color: #4f8187" class="">o1</span> == <span style="color: #4f8187" class="">o2</span> {</div><div style="margin: 0px; line-height: normal; color: rgb(209, 47, 27);" class=""><span style="color: #000000" class=""> </span><span style="color: #3e1e81" class="">print</span><span style="color: #000000" class="">(</span>"c1 = c2"<span style="color: #000000" class="">)</span></div><div style="margin: 0px; line-height: normal;" class=""><span style="color: #000000" class="">} </span>else<span style="color: #000000" class=""> {</span></div><div style="margin: 0px; line-height: normal; color: rgb(209, 47, 27);" class=""><span style="color: #000000" class=""> </span><span style="color: #3e1e81" class="">print</span><span style="color: #000000" class="">(</span>"c1 != c2"<span style="color: #000000" class="">)</span></div><div style="margin: 0px; line-height: normal; color: rgb(0, 0, 0);" class="">}</div><div style="margin: 0px; font-size: 12px; line-height: normal; font-family: Helvetica; min-height: 14px;" class=""><br class=""></div><div style="margin: 0px; line-height: normal; color: rgb(112, 61, 170);" class=""><span style="color: #ba2da2" class="">let</span><span style="color: #000000" class=""> o3 = </span>ObjectIdentifier<span style="color: #000000" class="">(</span><span style="color: #4f8187" class="">C</span><span style="color: #000000" class="">.</span><span style="color: #ba2da2" class="">self</span><span style="color: #000000" class="">)</span></div><div style="margin: 0px; line-height: normal; color: rgb(112, 61, 170);" class=""><span style="color: #ba2da2" class="">let</span><span style="color: #000000" class=""> o4 = </span>ObjectIdentifier<span style="color: #000000" class="">(</span><span style="color: #4f8187" class="">S</span><span style="color: #000000" class="">.</span><span style="color: #ba2da2" class="">self</span><span style="color: #000000" class="">)</span></div><div style="margin: 0px; font-size: 12px; line-height: normal; font-family: Helvetica; min-height: 14px;" class=""><br class=""></div><div style="margin: 0px; line-height: normal; color: rgb(209, 47, 27);" class=""><span style="color: #3e1e81" class="">print</span><span style="color: #000000" class="">(</span>"o3 -> C = <span style="color: #000000" class="">\</span>(<span style="color: #4f8187" class="">o3</span>)"<span style="color: #000000" class="">)</span></div><div style="margin: 0px; line-height: normal; color: rgb(209, 47, 27);" class=""><span style="color: #3e1e81" class="">print</span><span style="color: #000000" class="">(</span>"o4 -> S = <span style="color: #000000" class="">\</span>(<span style="color: #4f8187" class="">o4</span>)"<span style="color: #000000" class="">)</span></div><div style="margin: 0px; font-size: 12px; line-height: normal; font-family: Helvetica; min-height: 14px;" class=""><br class=""></div><div style="margin: 0px; line-height: normal; color: rgb(0, 132, 0);" class="">//Output:</div><div style="margin: 0px; line-height: normal; color: rgb(0, 132, 0);" class="">//c1 address: 0x00006040000165e0</div><div style="margin: 0px; line-height: normal; color: rgb(0, 132, 0);" class="">//o1 -> c1 = ObjectIdentifier(0x00006040000165e0)</div><div style="margin: 0px; line-height: normal; color: rgb(0, 132, 0);" class="">//o2 -> c2 = ObjectIdentifier(0x00006040000165e0)</div><div style="margin: 0px; line-height: normal; color: rgb(0, 132, 0);" class="">//c1 = c2</div><div style="margin: 0px; line-height: normal; color: rgb(0, 132, 0);" class="">//o3 -> C = ObjectIdentifier(0x00000001210b87f0)</div><div style="margin: 0px; line-height: normal; color: rgb(0, 132, 0);" class="">//o4 -> S = ObjectIdentifier(0x00000001210b86c8)</div></div></div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">Thanks and regards,</div><div class="">Muthu</div><div class=""><br class=""></div><div class=""><br class=""></div><br class=""><div><blockquote type="cite" class=""><div class="">On 13 Sep 2017, at 5:12 AM, Jordan Rose <<a href="mailto:jordan_rose@apple.com" class="">jordan_rose@apple.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><br class="Apple-interchange-newline"><br class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><blockquote type="cite" class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;"><div class="">On Sep 12, 2017, at 10:20, Andrew Trick via swift-users <<a href="mailto:swift-users@swift.org" class="">swift-users@swift.org</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><blockquote type="cite" class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><br class="Apple-interchange-newline">On Sep 12, 2017, at 9:55 AM, somu subscribe via swift-users <<a href="mailto:swift-users@swift.org" class="">swift-users@swift.org</a>> wrote:<br class=""><br class="">Hi Quinn,<br class=""><br class="">Thanks for the reply,<br class=""><br class="">It is an iOS Swift project (uses Foundation, UIKit, CloudKit and other native frameworks) in which I would like to check the memory address for debugging (and out of enthusiasm). There is no C code I am using.<br class=""><br class="">I have some asynchronous call back functions from CloudKit frameworks which return CKUserIdentity objects.<br class=""><br class="">So thought it would be nice if I could print the memory address of CKUserIdentity objects and to check if it was unique.<br class=""><br class="">And there are some other custom Swift Structs which I would like to know the memory address of.<br class=""><br class="">Thanks and regards,<br class="">Muthu<br class=""></blockquote><br class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><span class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;">For classes, use the Unmanaged API as Quinn’s suggested.</span><br class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;"></div></blockquote><div style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><br class=""></div><div style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">If you really just want a unique value and don't want to<span class="Apple-converted-space"> </span><i class="">do</i> anything with that value, ObjectIdentifier is even easier to use.</div><div style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><br class=""></div><div style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">Jordan</div><div style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><br class=""></div><br class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><blockquote type="cite" class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;"><div class=""><br class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><span class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;">Your structs, tuples, and enums only have an address during mutation. So, for example, if you wrap all of your code in a function that takes the variable `inout`, you’ll see a consistent address within a single call to that function. There’s an implicit cast from `inout` to Unsafe[Mutable]Pointer arguments, so you can inspect the pointer value...</span><br class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><br class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><span class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;">func foo(p: Unsafe[Mutable]Pointer) { print(p) }</span><br class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><br class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><span class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;">foo(&s2)</span><br class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><br class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><span class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;">As you noticed, between calls to `foo` you could see a different address.</span><br class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><br class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><span class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;">If you really want to give your structs an “identity” you would need to wrap them in a class.</span><br class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><br class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><span class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;">-Andy</span><br class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><br class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><blockquote type="cite" class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><blockquote type="cite" class="">On 12 Sep 2017, at 10:35 PM, Quinn The Eskimo! via swift-users <<a href="mailto:swift-users@swift.org" class="">swift-users@swift.org</a>> wrote:<br class=""><br class=""><br class="">On 12 Sep 2017, at 13:44, somu subscribe via swift-users <<a href="mailto:swift-users@swift.org" class="">swift-users@swift.org</a>> wrote:<br class=""><br class=""><blockquote type="cite" class="">1. Is the above shown the correct way to get reference type memory address ?<br class="">2. What Is it the correct way to get value type memory address ?<br class=""></blockquote><br class="">It’s hard to answer that without knowing how you’re intended to use these techniques. If you can explain more about where you’re going with this, I should be able to make some specific recommendations.<br class=""><br class="">For example, if you’re goal were to pass a Swift object to a C API that takes a callback function pointer and a ‘cookie’ value, and hen calls that function with that cookie (like the `qsort_r` function), the to/from opaque mechanism provider by `Unmanaged` is the recommended way to pass a Swift object through such a cookie value.<br class=""><br class=""><blockquote type="cite" class="">3. Is it possible to get the memory address of immutable value type (declared as let)<br class=""></blockquote><br class="">No, because such values don’t necessarily exist in memory.<br class=""><br class="">Share and Enjoy<br class="">--<br class="">Quinn "The Eskimo!" <<a href="http://www.apple.com/developer/" class="">http://www.apple.com/developer/</a>><br class="">Apple Developer Relations, Developer Technical Support, Core OS/Hardware<br class=""><br class=""><br class="">_______________________________________________<br class="">swift-users mailing list<br class=""><a href="mailto:swift-users@swift.org" class="">swift-users@swift.org</a><br class=""><a href="https://lists.swift.org/mailman/listinfo/swift-users" class="">https://lists.swift.org/mailman/listinfo/swift-users</a><br class=""></blockquote><br class="">_______________________________________________<br class="">swift-users mailing list<br class=""><a href="mailto:swift-users@swift.org" class="">swift-users@swift.org</a><br class=""><a href="https://lists.swift.org/mailman/listinfo/swift-users" class="">https://lists.swift.org/mailman/listinfo/swift-users</a><br class=""></blockquote><br class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><span class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;">_______________________________________________</span><br class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><span class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;">swift-users mailing list</span><br class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><a href="mailto:swift-users@swift.org" class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;">swift-users@swift.org</a><br class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><a href="https://lists.swift.org/mailman/listinfo/swift-users" class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;">https://lists.swift.org/mailman/listinfo/swift-users</a></div></blockquote></div></blockquote></div><br class=""></body></html>