Why create “Implicitly Unwrapped Optionals”, since that implies you know there’s a value?

Before I can describe the use cases for Implicitly Unwrapped Optionals, you should already understand what Optionals and Implicitly Unwrapped Optionals are in Swift. If you do not, I recommend you first read my article on optionals When To Use An Implicitly Unwrapped Optional There are two main reasons that one would create an Implicitly … Read more

Why Choose Struct Over Class?

According to the very popular WWDC 2015 talk Protocol Oriented Programming in Swift (video, transcript), Swift provides a number of features that make structs better than classes in many circumstances. Structs are preferable if they are relatively small and copiable because copying is way safer than having multiple references to the same instance as happens … Read more

Any way to replace characters on Swift String?

This answer has been updated for Swift 4 & 5. If you’re still using Swift 1, 2 or 3 see the revision history. You have a couple of options. You can do as @jaumard suggested and use replacingOccurrences() let aString = “This is my string” let newString = aString.replacingOccurrences(of: ” “, with: “+”, options: .literal, … Read more

Why are emoji characters like ๐Ÿ‘ฉโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ฆ treated so strangely in Swift strings?

This has to do with how the String type works in Swift, and how the contains(_:) method works. The ‘๐Ÿ‘ฉโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ฆ ‘ is what’s known as an emoji sequence, which is rendered as one visible character in a string. The sequence is made up of Character objects, and at the same time it is made up … Read more

How to enumerate an enum with String type?

This post is relevant here https://www.swift-studies.com/blog/2014/6/10/enumerating-enums-in-swift Essentially the proposed solution is enum ProductCategory : String { case Washers = “washers”, Dryers = “dryers”, Toasters = “toasters” static let allValues = [Washers, Dryers, Toasters] } for category in ProductCategory.allValues{ //Do something }

Using a dispatch_once singleton model in Swift

tl;dr: Use the class constant approach if you are using Swift 1.2 or above and the nested struct approach if you need to support earlier versions. From my experience with Swift there are three approaches to implement the Singleton pattern that support lazy initialization and thread safety. Class constant class Singleton { static let sharedInstance … Read more