任何想法如何避免DDTokenCache中的这个断言及其含义?

Jim*_*Jim 27 parsing objective-c assertion ios

我正在使用NSDataDetectorNSTextCheckingTypeLink来搜索字符串中的链接(例如https://stackoverflow.com/questions).一般来说,它工作正常,但当字符串包含某些非常长的链接(200 +字符)后跟一个空格和另一个字时,我得到这个断言:

> DDRequire failed: the following assertion will only be logged once
> 
> assertion on
> /SourceCache/MobileDataDetectorsCore/MobileDataDetectorsCore-154/Sources/PushDown/DDTokenCache.c:310
> "delta >= 0" failed :Bad shift in
> DDTokenCacheMoveStreamOffset, aborting
Run Code Online (Sandbox Code Playgroud)

这是导致这种情况的文本:

> blog.somethingorother.com/2011/storynameetcmorestuff/utm_source/eedburnerutmmediumfeedutmcampaign/FeedanutmcontentGooglFeedfetcherutmcampaign/FeedanutmcontentGooglFeedfetcher/eedburnerutm_mediumfeedutmcampaign/FeedanutmcontentGooglFeedfetcherutmcampaign HEY
Run Code Online (Sandbox Code Playgroud)

有谁知道这背后是什么或对此有任何其他见解?

Dai*_*jan 0

您可以预处理文本来替换那些造成麻烦的链接。