Немного сложно понять ошибку с кодом, который вы разместили. Я думаю, что проблема может быть с определением типа переменной websiteObject
. Я создал небольшую игровую площадку, чтобы проверить ее, и у вас все хорошо.
Я создаю небольшой проект, который работает нормально, используя ваши структуры. Вы можете проверить это здесь: https://github.com/acyrman/StackOverflow54211226 .
Соответствующее изменение в функции fetchJSON. Вместо использования self.websiteObject
, который я не знал, как вы его определили, я использовал локальную переменную, подобную этой: let websiteObject = try decoder.decode(WebsiteObjectStruct.self, from: data)
, затем продолжаю получать кавычки и назначать вашу переменную quoteArray
.
fileprivate func fetchJSON() {
let urlString = "http://quotes.rest/qod.json?category=inspire"
guard let url = URL(string: urlString) else { return }
URLSession.shared.dataTask(with: url) { [weak self] (data, response, error) in
if error != nil {
self?.displayAlert("Error fetching data: \(String(describing: error?.localizedDescription))")
}
let decoder = JSONDecoder()
do {
guard let data = data else { throw NSError(domain: "this.app", code: -1, userInfo: nil) }
let websiteObject = try decoder.decode(WebsiteObjectStruct.self, from: data)
if let quotesArray = websiteObject.contents.quotes {
DispatchQueue.main.async {
self?.quoteArray = quotesArray
self?.tableView.reloadData()
}
}
} catch let error {
self?.displayAlert("Error decoding json data: \(String(describing: error.localizedDescription))")
}
}.resume()
}
Для приложения я получаю цитату из: http://quotes.rest/qod.json?category=inspire . Также в info.plist важно включить настройки ATS, чтобы включить выборку данных из URL-адреса, отличного от https.
Код предназначен только для проверки ваших структур, не ожидайте проекта с чистым кодом;)
Приложение вызывает [ 115] в viewDidLoad
, используя стиль ячейки subtitle
, пользовательский интерфейс выглядит следующим образом:
Слишком ужасно, переменная среды GMON_OUT_PREFIX
не документируется в glibc. Я получил следующую информацию от сети и протестировал на моей машине.
если Вы устанавливаете переменную среды GMON_OUT_PREFIX
, затем выходной файл называют как ${GMON_OUT_PREFIX}.[PID]
, pid является идентификатором представленного процесса.
Например:
GMON_OUT_PREFIX=mygmon; gcc -o foo -pg foo.c
gmon файл: mygmon.12345
, принятие нечто обрабатывает id=12345.
Дать другое имя файла gprof:
gprof a.out gprof-foo.out
Относительно переименования их, устанавливает переменную среды GMON_OUT_PREFIX. Я нашел этого старым добрым objdump на libc.... Естественно, в libc документах ничто не говорится.