2016-11-10 11 views
1

Alamofire、Swift、Xcodeを使用しているプロジェクトがあります。私はJSONとしてWebのURLからデータを取得しています。 JSONはうまくいきますが、セルにはHTMLタグが表示されますが、コンソールに印刷するとHTMLタグは表示されません。私は、コード内のセルレベルで何か間違っていると確信していますが、それが何であるかを見ることができないようです。SWIFTでHTMLタグのないJSONが更新されていません3

CODEここ

import UIKit 
import Alamofire 

struct postinput { 
    let mainImage : UIImage! 
    let name : String! 
    let author : String! 
    let summary : String! 


} 


class TableViewController: UITableViewController { 

    var postsinput = [postinput]() 

    var mainURL = "https://www.example.com/api" 

    typealias JSONstandard = [String : AnyObject] 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     // Do any additional setup after loading the view, typically from a nib. 
     callAlamo(url: mainURL) 
    } 

    func callAlamo(url : String){ 
     Alamofire.request(url).responseJSON(completionHandler: { 
      response in 

      self.parseData(JSONData: response.data!) 


     }) 

    } 

    func parseData(JSONData : Data) { 
     do { 
      var readableJSON = try JSONSerialization.jsonObject(with: JSONData, options: .mutableContainers) as! JSONstandard 
      // print(readableJSON) 

      if let posts = readableJSON["posts"] as? [JSONstandard] { 
       for post in posts { 
        let title = post["title"] as! String 

        let author = post["author"] as! String 

        guard let dic = post["summary"] as? [String: Any], let summary = dic["value"] as? String else { 
         return 
        } 
        let str = summary.replacingOccurrences(of: "<[^>]+>", with: "", options: .regularExpression, range: nil) 
        print(str) 




        print(author) 

        if let imageUrl = post["image"] as? String { 
         let mainImageURL = URL(string: imageUrl) 
         let mainImageData = NSData(contentsOf: mainImageURL!) 
         let mainImage = UIImage(data: mainImageData as! Data) 

         postsinput.append(postinput.init(mainImage: mainImage, name: title, author: author, summary: summary)) 
        } 
       } 
       DispatchQueue.main.async { 
        self.tableView.reloadData() 
       } 
      } 


     } 


     catch { 
      print(error) 
     } 


    } 




    override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
     return postsinput.count 
    } 

    override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 
     let cell = tableView.dequeueReusableCell(withIdentifier: "cell") 

     // cell?.textLabel?.text = titles[indexPath.row] 

     let mainImageView = cell?.viewWithTag(2) as! UIImageView 

     mainImageView.image = postsinput[indexPath.row].mainImage 

     //(cell?.viewWithTag(2) as! UIImageView).image = postsinput[indexPath.row].mainImage 

     let mainLabel = cell?.viewWithTag(1) as! UILabel 

     mainLabel.text = postsinput[indexPath.row].name 

     mainLabel.font = UIFont(name: "Helvetica", size:14) 

     let autLabel = cell?.viewWithTag(3) as! UILabel 

     autLabel.text = postsinput[indexPath.row].author 

     autLabel.font = UIFont(name: "Helvetica", size:12) 

     let sumLabel = cell?.viewWithTag(4) as! UILabel 

     sumLabel.text = postsinput[indexPath.row].summary 

     sumLabel.font = UIFont(name: "Helvetica", size:12) 


     //(cell?.viewWithTag(3) as! UILabel).text = postsinput[indexPath.row].author 

     return cell! 
    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
     // Dispose of any resources that can be recreated. 
    } 


} 

答えて

1

この

let sumLabel = cell?.viewWithTag(4) as! UILabel 
let str = postsinput[indexPath.row].summary 
sumLabel.text = str.replacingOccurrences(of: "<[^>]+>", with: "", options: .regularExpression, range: nil) 
にこの

let sumLabel = cell?.viewWithTag(4) as! UILabel 
sumLabel.text = postsinput[indexPath.row].summary 

を変更

関連する問題