If I insert a image at index *m* then after it add a link at index *n* (i.e *n > m*), after drawing text the link location is added by 1 in attributed string because NIAttributedLabel insert a 0xFFFC into attributed string for every image. In this case, the link location is *n+1* in attributed string but is still *n* in the NSArray *detectedlinkLocations* or *explicitLinkLocations*. 
When touching a character before which there are images, CTLineGetStringIndexForPosition(line, relativePoint) returns the actual index but I must provide a original index for ```[self linkAtIndex:idx]``` to determine whether I touch a link.