Matt Massicotte
massicotte.org
Matt Massicotte
@massicotte.org
apple platform dev, outdoors, justice, games, he/him

Every problem has a simple wrong answer

https://github.com/mattmassicotte
https://www.massicotte.org
https://mastodon.social/@mattiem
This is exactly what I’m afraid of!
November 15, 2025 at 12:26 AM
Arg, having trouble finding the thing I stumbled onto this morning. But I’ll pay attention and try to let you know next time.
November 14, 2025 at 4:24 PM
Someone already sent it to me 😂
November 14, 2025 at 2:12 PM
Ha, yeah second person to suggest this! But I can’t break my record!!
November 14, 2025 at 12:48 PM
I have been there too 😫
November 14, 2025 at 12:41 PM
Yeah, there certainly *are* valid reasons, I just don’t think that’s what’s going on here…
November 14, 2025 at 12:17 PM
If you understand this be sure to like and subscribe. And make sure to hit the bell, because I have lots more content planned and you wouldn’t want to miss these obscure and terrible jokes.
November 13, 2025 at 11:47 AM
It’s too complex to explain easily. Multiple people responded quickly, one came first, but the other didn’t get my message item was gone until it’s too late. Was not happy.
November 13, 2025 at 9:31 AM
It’s too complex to explain easily. Multiple people responded quickly, one came first, but the other didn’t get my message item was gone until it’s too late. Was not happy.
November 13, 2025 at 9:31 AM
Right. So models are just plain data (typically). But the purpose of an actor (like the MainActor) is to protect *state*.
November 11, 2025 at 7:26 PM
I think every model probably needs to be nonisolated. Same thing for SwiftData and Core Data.

It's kinda the reverse. It would be very constraining for a storage system to support models that can only be used from the main thread.
November 11, 2025 at 6:16 PM
There are valid reasons why the compiler team decided to auto-apply MainActor to Sendable types. However, I think it is quite a weird thing to do for the vast majority of types. Sendable combined with any isolation at all is just strange. You should be fine doing this.
November 11, 2025 at 2:44 PM
For what it’s worth, they closed this bug by referencing a very specific language limitation related to protocol conformances. But based on my very cursory investigation, I don’t know if that’s actually what’s going on here. Could be, but not very clear.
November 11, 2025 at 12:08 PM
Well, pretty much everyone did that too.

Just don’t be shy. I’m happy to answer more questions!
November 11, 2025 at 9:52 AM
However! It is generally not true you have to understand it all. In fact that can be a trap.

Starting small and building up is, in my opinion, essential.
November 10, 2025 at 7:44 PM
You are not to blame at all!

The difference between 5.10 and 6.0 isn’t enormous. Between 6.0 and 6.2 is relatively small.

The difference between strict checking minimal and complete is dramatic.
November 10, 2025 at 7:43 PM
Haha well that’s something!

I’m assuming you are feeling overwhelmed and/or disappointed by the complexity you are finding?

(As opposed to a lack of information on that these things are?)
November 10, 2025 at 2:47 PM