In my app, I want to create a class that receives a certain type of notifications, begins it’s work and sends out notifications when it’s done. I think that later I may need to use concurrency to optimize the app — so this work that the class does is done in separate threads — but right now I don’t have any knowledge or experience of working with concurrency and I don’t want to spend time on premature optimizaion. However, if I understand correctly, the default usage of notifications doesn’t mix with concurrency so well.
Is there a way that I can just follow few simple rules with notifications right now without diving into concurrency, and avoid rewriting all that code later?
Yes, you can avoid a rewrite.
I would write your work/background tasks inside blocks and use GCD (Grand Central Dispatch). This works fine and is easy to use in the non-parallel case, but will also allow you to easily parallelize your work later.
I’d look into
NSBlockOperationandNSOperationQueueand/ordispatch_async()