Just for completeness I’d like to show in this post how to make structs serializable in the same manner as enums (see this post). Again, we transform the struct to a dictionary of NSCoding compliant types and give it to an NSCoder (e.g. NSKeyedArchiver) for coding. The other way round we get the decoded dictionary and initialize the desired struct with it. Sounds simple, doesn’t it. Let’s start.
Serializing enums with associated values
Welcome to this new posts in my series about enums with associated values. In the previous posts we looked at the equatability of enums with associated values. Another problem arises when we want to store enums (maybe as part of the model) on a file or want to send it over a network, let’s say: want to serialize the enum. Although the primitive types as Int and String conform to the NSCoding protocol as well as collections of those types (e.g. Arrays and Dictionaries) enums and structs don’t. And since they are not classes we can also not implement the NSCoding protocol for them. For simple enums we can use its raw values for coding, but that’s not possible for enums with associated values.
Hotfix
Heute war im Lenkungsausschuss eines großen Ausbauprojektes eines meiner Kunden die Problematik von „Hotfixes“ oder „Emergency Maintenance“ ein Thema. Einig waren wir uns darin, dass solche Änderungen am System aus einer Notlage heraus möglichst schnell und ohne großen Overhead vorgenommen werden müssen. Das bedeutet für die Rahmenbedingungen von Hotfixes:
Similarity of enums with associated values
If you have read this previous post you have seen how to compare two enums with associated values for equality. The equality included the associated values as well which is only fair. But sometimes you are not interested in the associated values but only want to know, if the two enums are of the same case regardless of the possibly associated values; I call this in the following if they are „similar“.
Korrelationen und Ursache-Wirkung-Beziehungen
Letztens habe ich einen Kurs über Wirtschafts-Englisch besucht. Dabei tauchte der Begriff „Correlation“ auf, der nicht allen Teilnehmern geläufig war. Da hat dann die Kursleiterin versucht, das als Ursache-Wirkung-Beziehung zu erklären. Tja, da musste ich doch vehement widersprechen. Eine Korrelation mag vielleicht auf eine Ursache-Wirkung-Beziehung hindeuten, sie selbst ist es aber mitnichten. Tatsächlich wird hier häufig Schindluder betrieben und unabsichtlich (oder auch absichtlich) unlauter argumentiert.