2011-01-21 16 views
27

NSTextCheckingTypeLink ile NSDataDetector kullanıyorum. Bağlantılar için bir dize arayın (ör. https://stackoverflow.com/questions). Genellikle, iyi çalışıyor, ancak dize boşluk ve başka bir kelime izledi belli çok uzun bağlantılar (200+ karakter) içerdiğinde, bu iddiayı olsun: Bu, bu neden olan metnin türüdürDDTokenCache'de bu iddianın nasıl önleneceği ve ne anlama geldiği hakkında bir fikriniz var mı?

> 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 

:

> blog.somethingorother.com/2011/storynameetcmorestuff/utm_source/eedburnerutmmediumfeedutmcampaign/FeedanutmcontentGooglFeedfetcherutmcampaign/FeedanutmcontentGooglFeedfetcher/eedburnerutm_mediumfeedutmcampaign/FeedanutmcontentGooglFeedfetcherutmcampaign HEY 

Bunun arkasında ne olduğunu veya bunun hakkında başka bir kavrayış sahibi olan var mı?

+1

Bu bilgi ile bir [hata raporu] (http://bugreport.apple.com) bulunmalısınız, örnek bir proje ile birlikte bu sorunu yeniden üretir. –

+0

Tamam, yapacak. Ama hala NSDataDetector'ı hurdaya çıkarmayacak bir geçici çözüm bekliyorum. – Jim

+2

Bunu çalıştıran başka bir kişi için: 8917104 numaralı sorundan dolayı Apple ile dosyalanmıştır. Hata raporunuzda bunu yapmanız gerektiğine bakabilirsiniz. – Jim

cevap

0

Sorun oluşturan linklerin yerini alan metni önceden işleyebilirsiniz.

+0

# veya # eklemeye çalışabilir misiniz? _space_HEY –

+0

downvoter'dan önce bağlantının arkasında - lütfen açıklayın. Bu geçerli bir geçici çözüm gibi geliyor :) –

1

Çözüldü: Sorun, UITextView veri detektörleriyle.

UIDataDetectorTypes geçmesi edin: Sonra UIDataDetectorTypeAll veya UIDataDetectorTypeAddress veya UIDataDetectorTypeCalendarEvent ayarlarsanız

typedef NS_OPTIONS(NSUInteger, UIDataDetectorTypes) { 
UIDataDetectorTypePhoneNumber = 1 << 0,   // Phone number detection 
UIDataDetectorTypeLink   = 1 << 1,   // URL detection  
#if __IPHONE_4_0 <= __IPHONE_OS_VERSION_MAX_ALLOWED 
UIDataDetectorTypeAddress  = 1 << 2,   // Street address detection 
UIDataDetectorTypeCalendarEvent = 1 << 3,   // Event detection 
#endif  

UIDataDetectorTypeNone   = 0,    // No detection at all 
UIDataDetectorTypeAll   = NSUIntegerMax // All types 
}; 

iOS iOS5.0 ve Above sorunları yaratır.

textview.dataDetectorTypes=UIDataDetectorTypeAddress | UIDataDetectorTypeCalendarEvent; 

textview.dataDetectorTypes=UIDataDetectorTypeAll; 

Ya

Sonra bazen yukarıda iOS5.0 ve sorunu yaratır.

Yani açıkça veri dedektörleri ayarlamak gerekir:

textview.dataDetectorTypes = UIDataDetectorTypeLink | UIDataDetectorTypePhoneNumber; 
İlgili konular