我有一个用 Swift 4 编写的项目(iOS 部分)。我将其更新到 5,但现在我收到了此警告。我尝试按照建议修复它,但每次都会遇到不同的错误。你能帮我吗?
代码
func saveData(data: BloodData) {
if let defaults = getUserDefaults() {
BloodData.registerClassName()
let encodedData: Data = NSKeyedArchiver.archivedData(withRootObject: data)
defaults.set(encodedData, forKey: dataKey)
defaults.synchronize()
}
}
Run Code Online (Sandbox Code Playgroud)
警告
archivedData(withRootObject:)' was deprecated in iOS 12.0: Use +archivedDataWithRootObject:requiringSecureCoding:error: instead
Run Code Online (Sandbox Code Playgroud)
代码
func getData() -> BloodData? {
BloodData.registerClassName()
if let defaults = getUserDefaults(), let data = defaults.data(forKey: dataKey), let decodedData = NSKeyedUnarchiver.unarchiveObject(with: data) as? BloodData {
return computeData(data: decodedData)
}
return nil
}
Run Code Online (Sandbox Code Playgroud)
警告
'unarchiveObject(with:)' was deprecated in iOS 12.0: Use …Run Code Online (Sandbox Code Playgroud) 我想知道是否可以使用 unicode 来显示带有 FontAwesome 包的图标。如果是的话,如何实现呢?
可能到底是什么问题:
这是我的 FontAwesome 使用,我需要用带有 unicode 的字符串替换 IconData
CategoriesWidget(
icon: FontAwesomeIcons.fighterJet, // need to replace fighterJet to it's unicode (f0fb)
color: Colors.purple[400],
category: "Military", // it's going to be model.title (from JSON title field)
),
Run Code Online (Sandbox Code Playgroud)
我为什么要这样做?我通过 JSON 传递类别数据,并且必须使图标可以根据传递的数据进行更改。
JSON 的一部分
title: "Military"
icon: "f0fb" // I can change it directly to name like fighterJet but I cannot use it while it's String not IconData
Run Code Online (Sandbox Code Playgroud)