如何在Xcode 4.3.1中使用RegexKitLite?

时间:2012-07-04 09:07:06

标签: iphone xcode4.3

我无法使用RegexKitLite来匹配字符串

NSString *encodedPoints=[apiResponse stringByMatching: @"\\\"([^\\\"]*)\\\"^[^:]*" 
                                              capture: 0];

和apiResponse是:

@"http://maps.google.com/maps?output=dragdir&saddr=20.001364,73.749283&daddr=19.991499,73.744095"

所以,通过这种方式,我得到以下错误:

  

__ NSCFString stringByMatching:capture:]:无法识别的选择器发送到实例0x131fc0

     

*由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:' - [__ NSCFString   stringByMatching:capture:]:发送到实例的无法识别的选择器   0x131fc0'   * 第一次抛出调用堆栈:(0x3422b8bf 0x3447b1e5 0x3422eacb 0x3422d945 0x34188680 0xb97b 0xad2f 0xaa2d 0xa617 0x34185435   0x375ef9eb 0x376b53cf 0x34185435 0x375ef9eb 0x375ef9a7 0x375ef985   0x375ef6f5 0x375f002d 0x375ee50f 0x375edf01 0x375d44ed 0x375d3d2d   0x30a06df3 0x341ff553 0x341ff4f5 0x341fe343 0x341814dd 0x341813a5   0x30a05fcd 0x37602743 0x4571 0x2838)

我试图通过谷歌搜索找到解决方案,但没有得到确切的解决方案。

请帮忙......

1 个答案:

答案 0 :(得分:8)

确保项目中包含正确的库。

转到Project Navigator并选择项目。

单击Target并选择Build Phases选项卡,然后打开Link Binary With Libraries。

按+按钮,然后搜索libicucore.A.dylib。将此库添加到您的项目中。

接下来,您需要添加编译源,它位于Link Binary With Libraries的上方Compile Sources中。再次按下+按钮并将 RegexKitLite.m 添加到目标。如果您尝试在此状态下构建项目,则应在RegexKitLite.m文件中收到大量错误。要更正此问题,请通过双击Compile Sources区域中的 RegexKitLite.m 文件,然后在显示的弹出窗口中包含-fno-objc-arc,将以下编译器标志添加到文件中。完成后,您将有希望将库源添加到您的项目中。

正如注释一样,-fno-objc-arc会在编译该源文件时删除自动引用计数。文件在没有编译器标志的情况下得到的错误与ARC有关,因此它解决了这个问题。

这解决了我在使用RegexKitLite时遇到的问题,希望能为您解决。