Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Objective-C category is not loaded - How to debug this

I have two projects which the RestKit framework.

One project works without problems but another project fails, as soon as the RestKit framework is used.

I found out that the failing code is this:

return [anNSString MD5];

The MD5 method is a category method and is imported like this:

#import "NSString+MD5.h"

However, in one project, I keep getting the following error:

-[__NSCFString MD5]: unrecognized selector sent to instance 0x88a3390

I understand the basics of categories, and that they can be loaded at runtime, but I don't see why the category does not get loaded in this case.

These are the files on github: NSString+MD5.m, NSString+MD5.h,

like image 405
Besi Avatar asked Jan 03 '12 15:01

Besi


2 Answers

Make sure you have the -ObjC flag enabled. Or it will not link categories in a static library.

Objective-C categories in static library

like image 134
lorean Avatar answered Nov 11 '22 19:11

lorean


It's not enough to just include the header file. You also need to compile and link the .m file in your project.

like image 36
JeremyP Avatar answered Nov 11 '22 19:11

JeremyP