{
  "version": "https://jsonfeed.org/version/1",
  "title": "Xcode/26 on Joe Sherwood",
  "icon": "https://cdn.micro.blog/joesh/avatar.jpg",
  "home_page_url": "https://joesh.micro.blog/",
  "feed_url": "https://joesh.micro.blog/feed.json",
  "items": [
      {
        "id": "http://joesh.micro.blog/2026/05/31/til-sortdescriptors-crash-swiftui-previews.html",
        "title": "⌘ til • `SortDescriptor`s crash SwiftUI previews",
        "content_html": "<p>Sorting a <strong>SwiftData</strong> <code>Query</code> directly works on device and simulator. However use this in an <code>init</code></p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:2;-o-tab-size:2;tab-size:2;-webkit-text-size-adjust:none;\"><code class=\"language-swift\" data-lang=\"swift\"><span style=\"display:flex;\"><span>query = Query(filter: predicate, sort: [SortDescriptor(<span style=\"color:#960050;background-color:#1e0010\">\\</span>Foo.bar?.baz])\n</span></span></code></pre></div><p>and the <strong>SwiftUI Preview</strong> canvas will crash. Previews seem to not have the ability to sort through an <code>Optional</code> chain and produce the correct <code>sql</code> command.</p>\n<p>Instead, a post-query, <code>Array</code>-based sort can be used.</p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:2;-o-tab-size:2;tab-size:2;-webkit-text-size-adjust:none;\"><code class=\"language-swift\" data-lang=\"swift\"><span style=\"display:flex;\"><span><span style=\"color:#66d9ef\">init</span>() {\n</span></span><span style=\"display:flex;\"><span>  query = Query(filter: predicate)\n</span></span><span style=\"display:flex;\"><span>}\n</span></span><span style=\"display:flex;\"><span>\n</span></span><span style=\"display:flex;\"><span><span style=\"color:#66d9ef\">var</span> body: some View {\n</span></span><span style=\"display:flex;\"><span>  HStack() {\n</span></span><span style=\"display:flex;\"><span>    ForEach(sorted) { qux <span style=\"color:#66d9ef\">in</span>\n</span></span><span style=\"display:flex;\"><span>      ...\n</span></span><span style=\"display:flex;\"><span>    }\n</span></span><span style=\"display:flex;\"><span>  }\n</span></span><span style=\"display:flex;\"><span>}\n</span></span><span style=\"display:flex;\"><span>\n</span></span><span style=\"display:flex;\"><span><span style=\"color:#66d9ef\">private</span> <span style=\"color:#66d9ef\">var</span> sorted: [Foo] {\n</span></span><span style=\"display:flex;\"><span>  query.sorted {\n</span></span><span style=\"display:flex;\"><span>    ($0.bar?.baz ?? <span style=\"color:#e6db74\">&#34;&#34;</span>) <span style=\"color:#f92672\">&lt;</span> ($1.bar?.baz ?? <span style=\"color:#e6db74\">&#34;&#34;</span>)\n</span></span><span style=\"display:flex;\"><span>  }\n</span></span><span style=\"display:flex;\"><span>}\n</span></span></code></pre></div><blockquote>\n<p>env • Xcode 26.5 • Swift 6.3 • iOS 26.5</p>\n</blockquote>\n",
        "date_published": "2026-05-31T22:57:15-05:00",
        "url": "https://joesh.micro.blog/2026/05/31/til-sortdescriptors-crash-swiftui-previews.html",
        "tags": ["dev","xcode","til","swift","swift/6","swift/6.3","swiftdata","xcode/26","xcode/26.5"]
      }
  ]
}
