<div dir="ltr">I&#39;ve encountered a similar bug and filed a radar a few months ago. My report was marked as a duplicate but besides that I haven&#39;t received any follow-up. It does appear to have been fixed in Xcode 8.1 / Swift 3.0.1. <a href="http://www.openradar.me/28365419" target="_blank">http://www.openradar.me/283654<wbr>19</a><div><div><br></div><div>Essentially, NSJSONSerialization would (does?) crash if you ask it to encode an array/dictionary of Anys containing an optional value containing a bridged Foundation type. The below snippet was the easiest demonstration of the runtime exception.</div><div><br></div><div><pre style="margin-top:0px;margin-bottom:0px;padding:0px;border:0px;outline:0px;vertical-align:baseline;background-color:transparent;color:rgb(16,16,16);font-size:11.199999809265137px;white-space:pre-wrap;max-width:800px">    let name: String? = &quot;Spike&quot;
    let dogNames: [Any] = [name]

    do {
        try JSONSerialization.data(withJSO<wbr>NObject: dogNames, options: .prettyPrinted)
    } catch {
        print(&quot;HI&quot;)
    }</pre></div></div><div class="gmail_extra"><br></div><div class="gmail_extra">What version of Swift is the user of your framework using?<br></div><div class="gmail_extra"><br></div><div class="gmail_extra">Dan</div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Nov 18, 2016 at 1:37 PM, Jens Alfke via swift-users <span dir="ltr">&lt;<a href="mailto:swift-users@swift.org" target="_blank">swift-users@swift.org</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div style="word-wrap:break-word"><div>A developer using the framework I work on <a href="https://forums.couchbase.com/t/exception-caught-in-map-block-of-view-invalid-type-in-json-write--swiftvalue/10808" target="_blank">just reported</a> an exception which is triggered by NSJSONSerialization (see backtrace below.) Basically an NSDictionary gets parsed from JSON data (in Obj-C), passed to a Swift function, which then calls another function (written in Obj-C) that serializes it back to JSON data. That last step is crashing due to some problem with bridging.</div><div><br></div><div>The events leading up to this are:</div><div><br></div><div>1. The framework (written in Obj-C) parses some JSON data using NSJSONSerialization, resulting in an NSDictionary.</div><div>2. The NSDictionary is passed as a parameter to a block; the parameter is typed as `NSDictionary*`.</div><div>3. The block is part of the application, which is written in Swift.</div><div>4. The block in turn passes that NSDictionary to a function in the framework (through a parameter is typed as `id`)</div><div>5. The framework uses NSJSONSerialization to convert that id to data.</div><div><br></div><div>Step 5 is triggering an assertion failure in Foundation. Apparently it failed to un-bridge a Swift value in an array back into an NSObject. (From the contents of the dictionary I know that the single-object array in question contains a string.)</div><div><br></div><div>Any idea what’s going on here? I’ve never seen this happen before, and this part of our framework has been around for 2 ½ years. People have successfully built Swift apps using the framework. (This app was built with Xcode 8.0; don’t know what the OS is, though.)</div><div><br></div><div><span class="m_-7546214095940446111gmail-m_-931482524993042869m_-5987654839235104880Apple-tab-span" style="white-space:pre-wrap">        </span>Invalid type in JSON write (_SwiftValue)<div><span class="m_-7546214095940446111gmail-m_-931482524993042869m_-5987654839235104880Apple-tab-span" style="white-space:pre-wrap">        </span>3   Foundation                          0x0000000111263284 _writeJSONValue + 668</div><div><span class="m_-7546214095940446111gmail-m_-931482524993042869m_-5987654839235104880Apple-tab-span" style="white-space:pre-wrap">        </span>4   Foundation                          0x00000001112636d9 ___writeJSONArray_block_invoke + 132</div><div><span class="m_-7546214095940446111gmail-m_-931482524993042869m_-5987654839235104880Apple-tab-span" style="white-space:pre-wrap">        </span>5   CoreFoundation                      0x0000000118e1ce2a -[__NSSingleObjectArrayI enumerateObjectsWithOptions:us<wbr>ingBlock:] + 58</div><div><span class="m_-7546214095940446111gmail-m_-931482524993042869m_-5987654839235104880Apple-tab-span" style="white-space:pre-wrap">        </span>6   Foundation                          0x00000001112633df _writeJSONArray + 330</div><div><span class="m_-7546214095940446111gmail-m_-931482524993042869m_-5987654839235104880Apple-tab-span" style="white-space:pre-wrap">        </span>7   Foundation                          0x0000000111263204 _writeJSONValue + 540</div><div><span class="m_-7546214095940446111gmail-m_-931482524993042869m_-5987654839235104880Apple-tab-span" style="white-space:pre-wrap">        </span>8   Foundation                          0x0000000111262f94 -[_NSJSONWriter dataWithRootObject:options:err<wbr>or:] + 124</div><div><span class="m_-7546214095940446111gmail-m_-931482524993042869m_-5987654839235104880Apple-tab-span" style="white-space:pre-wrap">        </span>9   Foundation                          0x0000000111262e74 +[NSJSONSerialization dataWithJSONObject:options:err<wbr>or:] + 333</div><span class="m_-7546214095940446111gmail-m_-931482524993042869m_-5987654839235104880Apple-tab-span" style="white-space:pre-wrap">        </span>...<span class="m_-7546214095940446111gmail-m_-931482524993042869HOEnZb"><font color="#888888"><br class="m_-7546214095940446111gmail-m_-931482524993042869m_-5987654839235104880Apple-interchange-newline"><br></font></span></div><span class="m_-7546214095940446111gmail-m_-931482524993042869HOEnZb"><font color="#888888"><div>—Jens</div></font></span></div><br>______________________________<wbr>_________________<br>
swift-users mailing list<br>
<a href="mailto:swift-users@swift.org" target="_blank">swift-users@swift.org</a><br>
<a href="https://lists.swift.org/mailman/listinfo/swift-users" rel="noreferrer" target="_blank">https://lists.swift.org/mailma<wbr>n/listinfo/swift-users</a><br>
<br></blockquote></div><br></div></div>