6

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,

Besi
  • 22,579
  • 24
  • 131
  • 223

2 Answers2

21

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

Objective-C categories in static library

Community
  • 1
  • 1
lorean
  • 2,150
  • 19
  • 25
7

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

JeremyP
  • 84,577
  • 15
  • 123
  • 161
  • I am implicitly compiling the sources by adding the individual products as dependencies. – Besi Jan 03 '12 at 16:27