私は基本的なRSSリーダーを作っています。Safariでリンクを開く必要がありますが、セルをクリックすると何も起こりません。ここで私が持っているものである:ここではSafariを開いていないリンク
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
//Navigation Logic:
int storyIndex = [indexPath indexAtPosition: [indexPath length] -1];
NSString *storyLink = [[stories objectAtIndex: storyIndex] objectForKey:@"link"];
//cleaning up the link...
storyLink = [storyLink stringByReplacingOccurrencesOfString:@" " withString:@""];
storyLink = [storyLink stringByReplacingOccurrencesOfString:@"/n" withString:@""];
storyLink = [storyLink stringByReplacingOccurrencesOfString:@" " withString:@""];
NSLog(@"link: %@", storyLink);
//open in Safari
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:storyLink]];
}
は、コンソールログです:
2011-06-27 20:03:51.817 ParadiseBeats[26927:207] all done
2011-06-27 20:03:51.818 ParadiseBeats[26927:207] stories array had 20 items
2011-06-27 20:03:53.758 ParadiseBeats[26927:207] link: technobuffalo.com/companies/apple/…
そして、私がリンクに置く:
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
if ([stories count] == 0) {
NSString *path = @"http://www.technobuffalo.com/feed/";
[self parseXMLFileAtURL:path];
}
}
ここでは解析がありますコード:
-(void)parser:(NSXMLParser *) parser didStartElement:(NSString *) elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *__strong)qName attributes:(NSDictionary *__strong)attributeDict {
currentElement = [elementName copy];
if([elementName isEqualToString:@"item"]){
//clear out story item caches...
item = [[NSMutableDictionary alloc] init];
currentTitle = [[NSMutableString alloc] init];
currentDate = [[NSMutableString alloc] init];
currentSummary = [[NSMutableString alloc] init];
currentLink = [[NSMutableString alloc] init];
}
}
-(void)parser:(NSXMLParser *)parser didEndElement:(NSString *__strong)elementName namespaceURI:(NSString *__strong)namespaceURI qualifiedName:(NSString *__strong)qName {
if ([elementName isEqualToString:@"item"]) {
[item setObject:currentTitle forKey:@"title"];
[item setObject:currentLink forKey:@"link"];
[item setObject:currentSummary forKey:@"summary"];
[item setObject:currentDate forKey:@"date"];
[stories addObject:[item copy]];
NSLog(@"adding story: %@", currentTitle);
}
}
-(void)parser:(NSXMLParser *) parser foundCharacters:(NSString *__strong)string{
//save the characters for the current item
if ([currentElement isEqualToString:@"title"]) {
[currentTitle appendString:string];
}
else if ([currentElement isEqualToString:@"link"]) {
[currentLink appendString:string];
}
else if ([currentElement isEqualToString:@"pubDate"]) {
[currentDate appendString:string];
}
else if ([currentElement isEqualToString:@"description"]) {
[currentSummary appendString:string];
}
}
ログに記録されているリンクの例を追加できますか? –
2011-06-27 20:03:51.817 ParadiseBeats [26927:207]すべて完了 2011-06-27 20:03:51.818 ParadiseBeats [26927:207]物語の配列には20個のアイテムがあります 2011-06-27 20:03 :53.758 ParadiseBeats [26927:207]リンク:http://www.technobuffalo.com/companies/apple/lulzsecs-goodbye-gift-leaks-att-doc-indicating-4glte-ipad/ – Chris
リンクでプロトコルが指定されていますか?それが必ずしもHTTPを使用していない場合、ファインダーや他のアプリがSafariの前に忍び寄るかもしれません。 –