Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Linker can't find CTFontCreateWithNameAndOptions

I am trying to use CTFontCreateWithNameAndOptions() from CoreText and the linker is saying "Symbol(s) not found", specifically for _CTFontCreateWithNameAndOptions. I added CoreText.framework and am importing <CoreText/CoreText.h>. It compiles fine, but the linker fails.

Here's the declaration in CTFont.h:

CTFontRef CTFontCreateWithNameAndOptions( CFStringRef name, CGFloat size, const CGAffineTransform *matrix, CTFontOptions options ) CT_AVAILABLE_STARTING( __MAC_10_6, __IPHONE_3_2);

Here's the actual call:

CTFontRef font = CTFontCreateWithNameAndOptions( (CFStringRef)@"HelveticaNeue-Bold" , 14.0f , NULL , kCTFontOptionsDefault ) ;

Anybody have any ideas?

My iOS app is linking against the 4.2 framework.

like image 642
leftspin Avatar asked Nov 06 '22 05:11

leftspin


2 Answers

I had the same problem. _CTFontCreateWithNameAndOptions is not part of the CoreText framework for iOS, it is part of CoreText framework for OS X only. I reported a documentation bug.

like image 76
Plamen Terziev Avatar answered Nov 09 '22 14:11

Plamen Terziev


You need to add the CoreText.framework to your project.

  1. Go to the project settings
  2. Select the appropriate target
  3. Click Build Phases
  4. Expand Link Binary With Libraries
  5. Click + to add, and find CoreText.Framework, as per screenshot:

Add Core Text

like image 42
Stuart Carnie Avatar answered Nov 09 '22 13:11

Stuart Carnie