Breaking a large Switch case into multiple switch cases

Many a times we stumble upon Switch cases which run into 100s of cases. Ideally it should be under 30 (highly subjective) or any other number which you deem manageable. In the given below code example we will break a switch case into multiple ones. The above code example utilizes 100 + default cases in … Read more

Shuffle an array in Swift

Swift now comes with built in shuffle functionality. Swift provides two methods shuffle() shuffled() shuffle() Shuffle reorders a collection in place. After calling shuffle on the collection the original collection is changed/reordered Since shuffle() is mutating in nature you cannot use it with constant declared using let keyword. It has a complexity of O(n), where n is … Read more

URLSession and Synchronous HTTP request

It might sound stupid(and most of the time it is) but there are situations when you want to make a synchronous request using URLSession. I faced the situation when I had to log both request and response together. Semaphores and Synchronous HTTP request A asynchronous request looks something like this To make it behave we … Read more

Fatal error: Unexpectedly found nil while unwrapping an Optional value

So your code is crashing with EXC_BAD_INSTRUCTION and you are getting a error like Fatal error: Unexpectedly found nil while unwrapping an Optional value or Fatal error: Unexpectedly found nil while implicitly unwrapping an Optional value This crash arises when we attempt to forcefully or Implicitly unwrap an optional and that optional, as the name … Read more

Save custom objects into UserDefaults

In this post, I will discuss how to save a custom object in UserDefaults. We will use Codable and JSON to save and retrieve data from UserDefaults. Before we begin let me caution you UserDefaults are not your database. Use CoreData or Realm for all your heavy lifting. Make your class/Type conform to codable protocol … Read more

Uploading a Large file using Alamofire 5

Very large files can not be converted into data at once and moved around in variables. It is simply not possible as very large files could trigger memory warning and eventual crash. Now the question arises how do we upload very large files using Alamofire? Solution is simple just pass the file url to alamofire … Read more

App Crashes Only On Testflight Build Swift

If you are facing a situation that your app crashes only on TestFlight build then you need to follow following steps Add you apple account to your Xcode. You can do this by going to Xcode-> preferences->Accounts. Click on the + button and the same apple developer account which you are using for test flight. … Read more


Join group of Software Professionals