Я получаю плохой доступ при вызове followLink.Этого не произойдет, если я вставлю строку openURL в textContainsURL, поэтому я предполагаю, что объект больше не существует после завершения метода?Я новичок в этом, но я думаю, что ARC должен был справиться с подобными вещами для вас?
@interface MyViewController : UIViewController
{
NSURL *newsURL;
}
@end
в реализации есть следующее:
- (void)followLink
{
[[UIApplication sharedApplication]openURL:newsURL];
}
- (BOOL)textContainsURL:(NSString*)text
{
NSError *error = NULL;
//scan text to see if there is a link and only set this up if there is
NSDataDetector *detector = [NSDataDetector dataDetectorWithTypes:NSTextCheckingTypeLink error:&error];
NSArray *matches = [detector matchesInString:text
options:0
range:NSMakeRange(0, [text length])];
for (NSTextCheckingResult *match in matches)
{
//NSRange matchRange = [match range];
if ([match resultType] == NSTextCheckingTypeLink)
{
newsURL = [[NSURL alloc] init];
newsURL = [match URL];//what's the void state? retain it
return YES;
}
}
return NO;
}