少し古いバージョンの Xcode (4.2.1、Apple clang バージョン 3.0 を使用) を使用しているため、問題が発生する可能性がありますが、これは関係なく動作するはずです。
新しい Quicklook プラグイン プロジェクトを作成します ("File > New > New Project"、次に "System Plugin > Quick Look Plug-in")。
次に、名前を変更GeneratePreviewForURL.c
しGeneratePreviewForURL.m
ます(Apple docs に記載されているように)
ファイル内の Objective-C コードを使用しようとすると、エラーが発生します。たとえば、GeneratePreviewForURL
メソッドに次を追加するとします。
#include <Foundation/Foundation.h> // at start of file
NSMutableDictionary *blah;
[blah setValue:@"valuething" forKey:@"keything"];
次のリンカ エラーが発生します。
Undefined symbols for architecture x86_64:
"_objc_msgSend", referenced from:
_GeneratePreviewForURL in GeneratePreviewForURL.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
問題の原因となっているわずかにトリミング/再フォーマットされたリンカー コマンドは次のとおりです。
cd ~/QuicklookExample
setenv MACOSX_DEPLOYMENT_TARGET 10.7
/Developer/usr/bin/clang
-arch x86_64 -bundle
-isysroot /Developer/SDKs/MacOSX10.7.sdk
-L/snip -F/snip -filelist /snip/QuicklookExample.LinkFileList
-mmacosx-version-min=10.7
-framework QuickLook
-framework ApplicationServices
-framework CoreServices
-framework CoreFoundation
-o /snip/QuicklookExample