我已将这些文件添加到我的项目中:
ASICacheDelegate.h
ASIDataCompressor.h
ASIDataCompressor.m
ASIDataDecompressor.h
ASIDataDecompressor.m
ASIDownloadCache.h
ASIDownloadCache.m
ASIFormDataRequest.h
ASIFormDataRequest.m
ASIHTTPRequest.h
ASIHTTPRequest.m
ASIHTTPRequestConfig.h
ASIHTTPRequestDelegate.h
ASIInputStream.h
ASIInputStream.m
ASINetworkQueue.h
ASINetworkQueue.m
ASIProgressDelegate.h
然后在项目的构建阶段添加-fno-objc-arc
,因为我的项目使用ARC而ASIHTTPRequest是在不使用它的情况下编写的。当我尝试编译我的项目时,我得到了这些错误:
Undefined symbols for architecture x86_64:
"_SCDynamicStoreCopyProxies", referenced from:
-[ASIHTTPRequest configureProxies] in ASIHTTPRequest.o
"_deflate", referenced from:
-[ASIDataCompressor compressBytes:length:error:shouldFinish:] in ASIDataCompressor.o
"_deflateEnd", referenced from:
-[ASIDataCompressor closeStream] in ASIDataCompressor.o
"_deflateInit2_", referenced from:
-[ASIDataCompressor setupStream] in ASIDataCompressor.o
"_inflate", referenced from:
-[ASIDataDecompressor uncompressBytes:length:error:] in ASIDataDecompressor.o
"_inflateEnd", referenced from:
-[ASIDataDecompressor closeStream] in ASIDataDecompressor.o
"_inflateInit2_", referenced from:
-[ASIDataDecompressor setupStream] in ASIDataDecompressor.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
我想用ASIHTTPRequest做什么:
NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"https://graph.facebook.com/me/photos?access_token=%@", access_token]];
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];
[request addFile:@"/Users/development/Desktop/12t.png" forKey:@"file"];
[request setPostValue:[NSString stringWithFormat:@"This is a test."] forKey:@"message"];
[request startAsynchronous];
如果我添加CoreGraphics,zlib,CFNetwork和SystemConfiguration框架(我的Xcode中找不到MobileCoreServices),我会收到以下错误:
Undefined symbols for architecture x86_64:
"_Gestalt", referenced from:
-[oglView(checkOSXVersion) checkForOSVersion:] in oglView+checkOSXVersion.o
+[ASIHTTPRequest defaultUserAgentString] in ASIHTTPRequest.o
"_UTTypeCopyPreferredTagWithClass", referenced from:
+[ASIHTTPRequest mimeTypeForFileAtPath:] in ASIHTTPRequest.o
"_UTTypeCreatePreferredIdentifierForTag", referenced from:
+[ASIHTTPRequest mimeTypeForFileAtPath:] in ASIHTTPRequest.o
"_kUTTagClassFilenameExtension", referenced from:
+[ASIHTTPRequest mimeTypeForFileAtPath:] in ASIHTTPRequest.o
"_kUTTagClassMIMEType", referenced from:
+[ASIHTTPRequest mimeTypeForFileAtPath:] in ASIHTTPRequest.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
答案 0 :(得分:6)
您似乎在Mac OS X项目中使用ASIHttprequest
。所以你需要遵循这个指示。
在Mac OS X项目中使用ASIHTTPRequest
要在Mac项目中使用ASIHTTPRequest,您需要链接:
- SystemConfiguration.framework + zlib(如上所述)
- CoreServices.framework CFNetwork是Mac OS X上CoreServices框架的一部分。除非您正在编写基于控制台的 应用程序,您的应用程序可能已设置为链接 CoreServices,但如果没有,只需添加CoreServices.framework即可 与上述相同。
答案 1 :(得分:4)
你需要添加一些必需的库,而ASSIHTTP正在使用这些framworks。这些框架是: -libz.dylib -系统配置 -MobileCoreServices -CFNetwork
答案 2 :(得分:0)
好像你没有包含ASI所依赖的库。查看setup instructions,特别是第2步:
Link with CFNetwork, SystemConfiguration, MobileCoreServices, CoreGraphics and zlib
答案 3 :(得分:0)
您是否包含了所有依赖项?因为你没有提到任何。 http://allseeing-i.com/ASIHTTPRequest/Setup-instructions 您还应该包括CFNetwork,SystemConfiguration,MobileCoreServices,CoreGraphics和zlib。
zlib和MobileCoreServices
顺便提一下,如果找不到zlib,我可以包含libz.x.dylib(我自己没有zlib)。你应该有MobileCoreServices.framework,因为它们应该在CoreService框架中。如果您没有它,那么您无法再次安装它以使ASI正常工作
答案 4 :(得分:0)
试试这个: - 选择项目 - 目标 - 选择Build Phases - 检查是否在“Link Binary with Libraries”
中添加了ASIHTTPRequest .m文件