Swift has support for serializing to JSON and property lists, but sometimes you need an archive, and these simple serialization formats won’t do. Archives are better for complex object graphs. They contain type information. They can contain … [Read more]
Swift Namespacing, Archiving, and XPC
This is admittedly esteric, but I found no answer when I ran into this problem, so I’m writing it up here. If you’re having trouble passing your custom Swift object across an XPC connection, read on. Swift allows you some control over how … [Read more]
Swift Error: Protocol Can only Be Used as a Generic Constraint
Anyone working in Swift for any length of time eventually runs into the following error: protocol ‘XXX’ can only be used as a generic constraint because it has Self or associated type requirements It is probably the single biggest cause … [Read more]
String Slicing in Swift
String slicing is somewhat verbose in Swift. If you’re coming from another language, it’s not immediately obvious how to do it at all. Many of us end up cursing the screen after trying to get substrings using patterns from other … [Read more]
Interpreting Data using Swift Generics
I’ve written previous posts on how to interpret Data as a simple scalar, or as an array of scalars. Now I want to refine that with generics. Here’s an example of the code I want to use. let data:Data = characteristic.value //get a data … [Read more]
Turning Numbers into Data in Swift
I’ve written articles1 on getting raw data into Swift types. This can happen when reading data from a device using Core Bluetooth. Writing data to a Bluetooth Device requires going the other direction and turning your numbers or arrays into raw … [Read more]