We have an iPad app and are using the new TabView
and TabSection
views in our sidebar. The TabSection
is populated with data from a @FetchRequest
that fetches data from CoreData. The data in CoreData is updated by a single worker that makes sure every value only exists once. This is done by using an OperationQueue
with maxConcurrentOperationCount
set to 1.
This is crashing for our users, and we can't figure out why. We can't reproduce it, and it only seems to happen on iPadOS. We have the same code running on macOS
and haven't received any reports. (We collect them all via 3rd party).
The error is:
NSInternalInconsistencyException
Fatal: supplied item identifiers are not unique. Duplicate identifiers: {(
...
)}
Where ...
is one to many comma separated strings.
In our latest update we made sure the values are unique by passing them through a Set
, unfortunately this is till crashing. Here's the fix
we tried.
var uniqueTags: [HashTag] {
let set = Set(hashTags)
let array = Array(set)
return array.sorted {
$0.name?.lowercased() ?? "" < $1.name?.lowercased() ?? ""
}
}
We're out of ideas and have no idea what to do next.