GCD, NSOperation and Core Data/ Files on disk

Core data is fast, even on iOS, where handheld devices lack in speed when compared to desktop computers. However, there will be times where you will be required to do some heavy reading, wether that will be plain files from disk or information stored in Core Data. In my case, I initially tried to load too much data from a Core Data database using GCD, resulting in deadlocks, and later, I tried that using NSOperation. To save many people from frustration, I thought I should post my experiences and some general guidelines here.

Continue reading

** Release ** Unilib Creator (beta)

ulciconUnilib is now released. This is a small project I have been working in my spare time (which is very limited nowadays). It was created to facilitate operations done to and with dynamic and static libraries on iOS and OS X.

More importantly, it allows you to build FAT static libraries on OS X and iOS, saving you the trouble to put #ifdefs into your code to link against two types of library, depending on the platform you are buildinf for (arm or i386).

Yes, it’s geeky, but I have found it useful. The UI can certainly be improved, and it will be in the future, until this app is no longer in beta stage, and will be distributed into the Mac Application Store.

You can view more information by clicking on this link.

PCRE for iPhone

Lately, I’ve been working on a project requiring heavy use of regular expressions on Cocoa. Foundation frameworks do not offer built in support for regular expressions. Instead, they do heavy work using NSScanner, and NSPredicate classes.

 A framework was created to solve this problem, called RegexKitLite, but it’s heavy use of and linking to Apple’s internal ICU framework, makes it very dangerous to App Store Rejection, when talking about applications for iPhone.

So, I’ve been searching for something like PCRE for iPhone, and I couldn’t find it anywhere. Therefore, I downloaded, and compiled the famous and standard PCRE library for  the iPhone as a dylib. I know that for some of you this can be a difficult process, so I will describe the steps here.

Continue reading