Ошибка компиляции с использованием фреймворка TFHpple из Swift

#objective-c #compiler-errors #swift

#objective-c #ошибки компилятора #swift

Вопрос:

У меня есть этот HTML,

  <div class="header1" style="text-align: center;">


 <div class="s">
          <center>
                  <table>
       <tr>
                          <td>
                     <ul style="position: relative;">
                       <li>
                    <a>
         <p>
   Apple Kid

        </p>
  

и я хочу получить слово «Apple kid» в качестве вывода с помощью Swift.

Я использовал для этого фреймворк TFHpple, но после добавления всех необходимых вещей он выдает ошибку. Как в файле Objective-C

 the  XPathQuery.h
//
//  XPathQuery.h
//  FuelFinder
//
//  Created by Matt Gallagher on 4/08/08.
//  Copyright 2008 __MyCompanyName__. All rights reserved.
//

NSArray *PerformHTMLXPathQuery(NSData *document, NSString *query);
NSArray *PerformHTMLXPathQueryWithEncoding(NSData *document, NSString *query,NSString *encoding);
NSArray *PerformXMLXPathQuery(NSData *document, NSString *query);
NSArray *PerformXMLXPathQueryWithEncoding(NSData *document, NSString *query,NSString *encoding);
  

Он показывает ошибку в этих функциях о неизвестном типе.

XpathQuery.m

 //
//  XPathQuery.m
//  FuelFinder
//
//  Created by Matt Gallagher on 4/08/08.
//  Copyright 2008 __MyCompanyName__. All rights reserved.
//

#import "XPathQuery.h"

#import <libxml/tree.h>
#import <libxml/parser.h>
#import <libxml/HTMLparser.h>
#import <libxml/xpath.h>
#import <libxml/xpathInternals.h>

NSDictionary *DictionaryForNode(xmlNodePtr currentNode, NSMutableDictionary *parentResult,BOOL parentContent);
NSArray *PerformXPathQuery(xmlDocPtr doc, NSString *query);
  

Ответ №1:

Вы должны поделиться точными ошибками, которые вы получили, но у меня не было проблем с использованием TFHpple из Swift. Как и в случае с Objective-C, вы должны

  • убедитесь, что вы ссылаетесь на libxml библиотеку на этапах сборки

  • добавьте $(SDKROOT)/usr/include/libxml2 в свой заголовок пути поиска в настройках сборки

Смотрите инструкции по установке в книге Вендерлиха «Как анализировать HTML на iOS» или в Cocoa с использованием libxml2 от Love для синтаксического анализа XML и запросов XPath в Cocoa.

Когда вы добавляете источник TFHpple в свой проект, вам должно быть предложено создать связующий заголовок. Сделайте это, а затем добавьте #import "TFHpple" к нему. Для получения дополнительной информации см. Раздел Импорта Objective-C в Swift раздела Swift и Objective-C в той же главе проекта руководства по использованию Swift с Cocoa и Objective-C.

Как только вы это сделаете, вы сможете использовать TFHpple без инцидентов со стороны Swift.