Closed zhenguocx closed 8 years ago
@zhenguocx 这个很诡异啊。1<<31==2147483648。 而2147483648其实是有符号整型的最大值,我这搞得是无符号的更理应会是在取值范围内的。你这个报错报的是-2147483648,为什么是有负号的。。
可以麻烦fork下库,然后在demo里重现下这个报错么?
fork估计是不行了,我压根没有改动你的代码也没有在自己的app里写什么代码,我们app是基于环信聊天服务器的,他们聊天内容没有电话识别及拨打的功能,想借助你的MLLabel,结果在app里一导入MLLinkLabel.h,编译就不通过,报上述错误。
@zhenguocx 这个我也不知道咋办了。要不这样吧,你别从pod了,直接把MLLabel的Classes文件夹丢进工程,然后手动把1<<31这个枚举值给改成其他的。例如1<<7啊1<<8啊 什么的。有其他问题再说。
已经改成1<<30了,不报错了,这个是啥意思我现在还不明白。我只是用的识别电话号码这一部分功能,点击的时候不走touchend方法,我强制把touchend方法写在touchbegin的else方法里了。勉强走代理了。。。
@zhenguocx 那既然30 OK,我就改成30以后下次release再发吧。 这个type意思是自动检测NSAttributedString里本身就带有NSLinkAttribute的文本并且转换成MLLinkLabel可以识别的链接,因为这个检测行为有些特殊,不同于其他的是MLLinkLabel自己定义正则去检测的,所以将其枚举搞到了最大可取的值,以后如果有其他需要正则判断的新type,会跟着是1<<6,1<<7....这样,算是把中间区域的值给隐式保留出来了。
另外你说的点击不走什么的,我估计是因为上层view有手势影响了。应该参考下demo里
ListNoNibTableViewCell.m
里的- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
实现处理,首先得找个那个手势。
不应该在库里改。
MLLinkLabel .h里 typedef NS_OPTIONS(NSUInteger, MLDataDetectorTypes) {
MLDataDetectorTypeAttributedLink = 1 << 31, }; 报错内容:Enumerator value evaluates to -2147483648,which cannot be narrowed to type 'NSUInteger'(aka'unsigned int')