如何在 Xcode 4.3.1 中使用 RegexKitLite?

Posted

技术标签:

【中文标题】如何在 Xcode 4.3.1 中使用 RegexKitLite?【英文标题】:How to use RegexKitLite in Xcode 4.3.1? 【发布时间】:2012-07-04 09:07:06 【问题描述】:

我在使用 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】:

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

转到您的项目导航器并选择项目。

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

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

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

就像注释一样,-fno-objc-arc 在编译该源文件时删除了自动引用计数。没有该编译器标志的文件出现的错误与ARC有关,因此它解决了问题。

这解决了我在使用 RegexKitLite 时遇到的问题,希望对你有用。

【讨论】:

以上是关于如何在 Xcode 4.3.1 中使用 RegexKitLite?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Xcode 4.3.1 将应用程序图标添加到项目中

如何使用带有 NSJSONSerialization 类参考的 xcode 4.3.1 从 URL 获取数据

如何从 Mac OS X 10.7.3 卸载 XCode 4.3.1?

仪器在 main.m (Xcode 4.3.1) 中显示泄漏

如何解决 Xcode 4.3.1 中的这个新警告:“由于缺少入口点,场景无法访问......”?

如何将 iPhone 应用程序从 Xcode 4.3.1 部署到具有 IOS 5.0.1 越狱的真实 iPhone 设备 [重复]