Dcard de práctica JSON

Practique el uso de Dcard Api para capturar datos y analizarlos

https://dcard.tw/_api/posts

Luego, tome los datos correspondientes según sus necesidades. Si los datos pueden ser nulos, ¿debe agregarlos? Asegúrese de que pueda ser nulo.

Codificable: se puede codificar o decodificar, Decodificador: se puede codificar, Codificador: se puede decodificar

import Foundation
struct Feed: Codable {
var id: Int
var title: String
var school: String?
var forumName: String
var excerpt: String
var gender: String
var updatedAt: Date
var topics: [String]
var media: [Media?]
var likeCount:Int
var commentCount:Int
}
struct Media: Codable {
var url: String
}

La fecha capturada tiene un punto decimal, así que agregue .withFractionalSeconds

let dateFormatter = ISO8601DateFormatter()
dateFormatter.formatOptions = [.withInternetDateTime, .withFractionalSeconds]
decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
let data = try decoder.singleValueContainer().decode(String.self)
return dateFormatter.date(from: data) ?? Date()
})

//開始下拉更新的功能
refreshControl = UIRefreshControl()
//修改顯示文字的顏色
let attributes = [NSAttributedString.Key.foregroundColor: UIColor.yellow]
//顯示文字內容
refreshControl?.attributedTitle = NSAttributedString(string: "正在更新", attributes: attributes)
//設定元件顏色
refreshControl?.tintColor = UIColor.white
//設定背景顏色
refreshControl?.backgroundColor = UIColor.black
//將元件加入TableView的視圖中
refreshControl?.addTarget(self, action: #selector(getData), for: UIControl.Event.valueChanged)
tableView.refreshControl = refreshControl
DcardClient.shared.getDecard(urlString: "https://dcard.tw/_api/posts/") { (dcards) in
if let dcards = dcards {
self.dcards = dcards
}
DispatchQueue.main.async {
self.tableView.reloadData()
}

override func viewDidLoad() {
let contentArray = feedDetail?.content.split(separator: "\n").map(String.init)
let mutableAttributedString = NSMutableAttributedString()
contentArray?.forEach {row in
if row.contains("http") {
mutableAttributedString.append(imageFrom: row, textView: cell.contentTextView)
} else {
mutableAttributedString.append(string: row)
}
}
DispatchQueue.main.async {
cell.contentTextView.attributedText = mutableAttributedString
cell.contentTextView.font = UIFont.systemFont(ofSize: 20)
}

Suggested posts

“Esa islita lo cambia todo”

Cómo diseñamos Lyft Live Activities para mejorar la experiencia del pasajero

“Esa islita lo cambia todo”

Un cambio de juego para los viajes compartidos De todas las cosas que hacemos en Lyft, coreografiar las recolecciones entre pasajeros y conductores es una de las más complejas y trascendentales. Lograr esta coreografía depende de que Lyft haga muchas cosas bien, pero simplemente mantener a los pasajeros al día es esencial.

Ciclo de vida de la aplicación

Ciclo de vida de la aplicación

: Ciclo desde el inicio de la aplicación hasta el apagado: Usabilidad mediante la administración de memoria o datos ⬆️ La seguridad se puede procesar UIApplication, situación de AppDelegate: define las funciones que el objeto AppDelegate recibe el mensaje enviado desde el objeto UIApplication y ejecuta cada No en ejecución: el estado en el que la aplicación no se está ejecutandoInactivo: El estado en el que se ejecuta la aplicación pero no se reciben eventos. Activo: el estado en el que se ejecuta la aplicación y se produce un evento. Fondo: el estado en el que la aplicación se encuentra en segundo plano, pero el código se ejecuta. Suspendido: el estado en el que se encuentra la aplicación. en segundo plano y sin ejecutar código para delegar funciones en el archivo AppDelegate.swift SceneDelegate Para responder bien a la función de escena múltiple admitida desde iOS 13 en adelante AppDelegate / SceneDelegate AppDelegate 1.

Related posts

La semana de aprendizaje en el trabajo es más importante de lo que piensas

La semana de aprendizaje en el trabajo es más importante de lo que piensas

A menudo nos encontramos luchando para implementar lo que sabemos que es bueno para nosotros. Desde decirle a un ser querido que lo amamos hasta recordar hablar como un pirata, siempre habrá quienes digan que no hace falta un día, una semana o un mes de eventos porque ya están haciendo esas cosas.

3 formas comprobadas de mejorar su habilidad de escritura

Los beneficios de escribir y estrategias para ayudarte a hacerlo

3 formas comprobadas de mejorar su habilidad de escritura

En 2022, con el lanzamiento de GPT-3, la habilidad de escritura parece perder importancia. Con IA, las personas con mala escritura también pueden generar personal de calidad.

Repensar los medios: las cinco verdades de McChesney y el futuro de las comunicaciones

En el mundo hiperconectado de hoy, los sistemas de medios juegan un papel fundamental en la formación de la opinión pública y, en consecuencia, en la toma de decisiones democrática. En su profundo análisis de la economía política de la comunicación, el académico Robert McChesney desafía la sabiduría convencional y presenta lo que él llama las “cinco verdades” sobre los medios.

Twitter de televisión en red

Twitter de televisión en red

Lo que es viejo ahora es nuevo otra vez y lo que solía ser algo reluciente ahora se siente aburrido. No me refiero a que los jeans JNCO regresen entre los chicos geniales del centro de la ciudad junto con otras modas de fines de la década de 1990.