本文将为您提供关于archivedData(withRootObject:)'在iOS12.0中被弃用-Swift5和Flutter的详细介绍,我们还将为您解释swiftui支持ios12吗的相关知识
本文将为您提供关于archivedData(withRootObject:)' 在 iOS 12.0 中被弃用 - Swift 5 和 Flutter的详细介绍,我们还将为您解释swiftui支持ios12吗的相关知识,同时,我们还将为您提供关于Android Studio 制作的 Flutter Project 可以在 iOs 上实现 在你的 iOS 设备上测试你的 Flutter iOS 应用、crbug/1173575,非 JS 模块文件在 angular 中被弃用、findDOMNode 在带有 React.createRef() 的 StrictMode 中被弃用、Flutter - flutter desktop embedding / flutter 桌面支持的实用信息。
本文目录一览:- archivedData(withRootObject:)' 在 iOS 12.0 中被弃用 - Swift 5 和 Flutter(swiftui支持ios12吗)
- Android Studio 制作的 Flutter Project 可以在 iOs 上实现 在你的 iOS 设备上测试你的 Flutter iOS 应用
- crbug/1173575,非 JS 模块文件在 angular 中被弃用
- findDOMNode 在带有 React.createRef() 的 StrictMode 中被弃用
- Flutter - flutter desktop embedding / flutter 桌面支持
archivedData(withRootObject:)' 在 iOS 12.0 中被弃用 - Swift 5 和 Flutter(swiftui支持ios12吗)
如何解决archivedData(withRootObject:)'' 在 iOS 12.0 中被弃用 - Swift 5 和 Flutter
我有一个使用 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()
}
}
警告
archivedData(withRootObject:)'' was deprecated in iOS 12.0: Use +archivedDataWithRootObject:requiringSecureCoding:error: instead
代码
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
}
警告
''unarchiveObject(with:)'' was deprecated in iOS 12.0: Use +unarchivedobjectOfClass:fromData:error: instead
这是一个计算数据函数:
private func computeData(data: BloodData) -> BloodData? {
let today = Date()
let calendar = Calendar.current
let date1 = calendar.date(bySettingHour: 12,minute: 00,second: 00,of: calendar.startOfDay(for: data.readingDate))!
let date2 = calendar.date(bySettingHour: 12,of: calendar.startOfDay(for: today))!
let components = calendar.dateComponents([.day],from: date1,to: date2)
let dayDiff = components.day ?? 0
let newBloodData = BloodData(
whiteCells: data.whiteCells - dayDiff,fullBlood: data.fullBlood - dayDiff,platelet: data.platelet - dayDiff,redCells1: data.redCells1 - dayDiff,redCells2: data.redCells2 - dayDiff,bloodplasma: data.bloodplasma - dayDiff,readingDate: date2
)
return newBloodData
}
解决方法
在大多数情况下使用 Swift 编码时,错误不是很有帮助。 第一个是不言自明的,除了建议的方法可能会引发错误。您可以删除 throw 关键字并使用 try? 忽略错误?如果您愿意,但最好捕获并处理错误:
func save(blood: BloodData,forKey defaultName: String = "BloodDataKey") { // or forKey defaultName: String = dataKey
guard let data = try? NSKeyedArchiver.archivedData(withRootObject: blood,requiringSecureCoding: false) else { return }
UserDefaults.standard.set(data,forKey: defaultName)
}
第二个错误根本没有帮助。您可以使用 NSKeyedUnarchiver 的方法 unarchiveTopLevelObjectWithData 并且它也会抛出:
func getBlood(forKey defaultName: String = "BloodDataKey") -> BloodData? { // or forKey defaultName: String = dataKey
guard let data = UserDefaults.standard.data(forKey: defaultName) else { return nil }
guard let bloodData = (try? NSKeyedUnarchiver.unarchiveTopLevelObjectWithData(data)) as? BloodData else { return nil }
return computeData(data: bloodData)
}
Android Studio 制作的 Flutter Project 可以在 iOs 上实现 在你的 iOS 设备上测试你的 Flutter iOS 应用
如何解决Android Studio 制作的 Flutter Project 可以在 iOs 上实现 在你的 iOS 设备上测试你的 Flutter iOS 应用
我对我的项目有疑问我终于从我在 Android Studio 上的 Flutter 项目中完成了,并在许多 android 设备上测试了它,现在我需要打开同一个项目并在 iOs 上测试它,我的问题是:-
- 我是否应该更改代码或文件中的某些内容以在 Xcode 上打开它?
- 我可以发布到 ipa 吗?
解决方法
在你的 iOS 设备上测试你的 Flutter iOS 应用
您只需按照以下步骤操作:
- 将
Runner.xcworkspace
文件放在项目文件夹的ios
文件夹中 - 双击打开该项目,它将在 Xcode 中启动(如果您安装了 Xcode)
- 然后使用 USB 数据线将您的 iOS 设备(实际手机)连接到 Xcode/MacBook
- 另外,不要忘记分别配置
Team
和Bundle Identifier
(如果您对Bundle Identifier
有任何问题):
在Signing & Capabilities
中,将Team
更改为Personal
(例如);
在 General
中,将 Bundle Identifier
编辑为独特的。
最后,您可以运行该应用了!
,对于 iOS,这有点复杂,因为您需要 Apple ID 或注册“开发者帐户”:
打开 XCode,然后打开“Preferences>Accounts”。使用您的 ID 登录。 “管理证书”> 单击“+”号并选择“iOS 开发”。 将您的设备插入您的机器。在下拉菜单中找到您的设备(窗口 > 管理器)。 在团队弹出菜单下方,单击修复问题。 在 Xcode 中,单击运行按钮。 (在后续运行中,您可以使用 Android Studio、VS Code 或任何其他选择的 IDE 部署到 iOS 设备,您只需要在第一次使用 Xcode 设置该证书。这是 Apple 的文档关于设置 Xcode 以运行物理设备。)
详情请点击链接How do I run/test my Flutter app on a real device?
crbug/1173575,非 JS 模块文件在 angular 中被弃用
如何解决crbug/1173575,非 JS 模块文件在 angular 中被弃用
在我的 angular 12 代码中,只要我运行以下命令: 私有渲染器:Renderer2, this.renderer.appendChild(ipsiContainer,html); 我遇到了 crbug/1173575,不推荐使用非 JS 模块文件并且我的 iframe 没有加载,你能帮我吗
解决方法
在 PHP(Codeigniter) 中,我遇到了同样的错误。因为语法错误。
findDOMNode 在带有 React.createRef() 的 StrictMode 中被弃用
如何解决findDOMNode 在带有 React.createRef() 的 StrictMode 中被弃用?
我正在使用一个功能组件来启动一个弹出表单。我想在提交时获取表单中的值,并在输入字段中使用 variable = React.createRef()
然后使用 ref={variable}
来检索它们,但我一直在获取
Warning: findDOMNode is deprecated in Strictmode
控制台中的错误。有没有更好的方法来做到这一点?
Const AddProduct = (section) => {
const [show,setShow] = useState(false);
const handleClose = () => setShow(false);
const handleShow = () => setShow(true);
let itemName = React.createRef();
const createProduct = () => {
console.log(itemName.current.value);
handleClose();
};
return (
<>
<a href="#" className="nav-link" onClick={handleShow}>
Add Product
</a>
<Modal show={show} onHide={handleClose}>
<Modal.Header>
<Modal.Title>Create Item</Modal.Title>
</Modal.Header>
<Modal.Body>
<Form.Group controlId="itemName">
<Form.Label>Item Name</Form.Label>
<Form.Control type="text" name="name" ref={itemName} />
</Form.Group>
</Modal.Body>
<Modal.Footer>
<Button variant="secondary" onClick={handleClose}>
Close
</Button>
<Button variant="primary" onClick={createProduct}>
Create
</Button>
</Modal.Footer>
</Modal>
</>
);
};
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)
Flutter - flutter desktop embedding / flutter 桌面支持
2019年5月9日,随着谷歌在IO19宣布Flutter支持Web平台,就标志着Flutter已经全面支持所有平台(移动、网页、桌面、嵌入式)。
现编一个跨平台小段子:
微软Xarmarin:喵喵喵???不是我最先做的吗,咋没人关注???
Facebook React Native:我是做的最好的跨平台。
谷歌Flutter:去你的吧,支持桌面端不,嵌入式?哈哈哈
苹果SwiftUI:老司机们,等等我。
但是这次要说的是,Flutter for desktop,Flutter支持桌面版已经有很长一段时间了,但是一直都没大研究。主要原因就是现在除了Flutter for mobile可以用在production以外,其他的三个平台知识现在已经验证技术上可行,但仍处于technical preview。像现在的官方大部分plugins,仍然没有适配desktop版本,更不要说第三方的plugins。这些plugins在桌面上调用时,轻者会点击毫无反应,重者会导致程序崩溃。而且现在桌面版普遍的一个问题就是,当app最小化的时候,app崩溃。
所以大家激动归激动,千万别冲动。
不过既然有了flutter for desktop,我们就尝鲜一下,看看在桌面上是什么效果。
1 工具准备
我用的是Windows平台,需要Visual Studio 2017 or 2019,并且包含“C++桌面开发负载”。其他平台可以去Github主页查看。
2 下载官方示例
打开 Desktop Embedding for Flutter,下载整个项目并解压。把整个example文件夹拖进VS Code或者在VS Code 里面打开文件夹,
然后VS Code提示 Some packages are missing or out of date, would you like to get them now?
毫不犹豫的点击Get Packages按钮,或者在终端输入flutter packages get也行
如果网络没问题的话或者镜像配置正确(下载不下来或者配置镜像自行搜索,本文不做介绍)的话,VS Code就会输出
[example] flutter packages get
Running "flutter pub get" in example... 6.7s
exit code 0
3 桌面版运行配置
由于我们下载的是官方示例,所里都配置好了。但是我们还是要看一下,因为以后要移植自己的项目鸭~~~
3a 打开pubspec.yaml文件
# See https://github.com/flutter/flutter/wiki/Desktop-shells#fonts
fonts:
- family: Roboto
fonts:
- asset: fonts/Roboto/Roboto-Thin.ttf
weight: 100
- asset: fonts/Roboto/Roboto-Light.ttf
weight: 300
- asset: fonts/Roboto/Roboto-Regular.ttf
weight: 400
- asset: fonts/Roboto/Roboto-Medium.ttf
weight: 500
- asset: fonts/Roboto/Roboto-Bold.ttf
weight: 700
- asset: fonts/Roboto/Roboto-Black.ttf
weight: 900
官方指定了Roboto字体,大部分应用也都需要指定一个字体。但是现在的话,不指定,也可以运行。不过有的Widgets可能在字体显示上有异常。
官方的解释:
Fonts
Flutter applications may default to fonts that are standard for the target platform, but unavailable on desktop. For instance, if the target platform is TargetPlatform.iOS the Material library will default to San Francisco, which is available on macOS but not Linux or Windows.
Most applications will need to set the font (e.g., via ThemeData) based on the host platform, or set a specific font that is bundled with the application. Other widgets that doesn''t use ThemeData may not display without extra font specification (e.g., the DEBUG banner''s text).
Symptoms of missing fonts include text failing to display and/or console logging about failure to load fonts.
3b 打开main.dart
设置运行平台
import ''package:flutter/foundation.dart''
show debugDefaultTargetPlatformOverride;
void main() {
// See https://github.com/flutter/flutter/wiki/Desktop-shells#target-platform-override
debugDefaultTargetPlatformOverride = TargetPlatform.fuchsia;
runApp(new MyApp());
}
3c 切换flutter到master channel
在终端中输入
flutter channel master
3d 升级master channel到最新版,然后会自动运行运行flutter doctor
flutter upgrade
3e 设置运行平台为桌面模式
如果VS Code终端是PowerShell,那么输入
$env:ENABLE_FLUTTER_DESKTOP="true"
CMD输入
set ENABLE_FLUTTER_DESKTOP=true
4 Flutter Run
如果按照上面操作没有问题的话,那么最激动人心的时刻就要到到来了
在终端输入
flutter run
回车
噔噔灯灯...(* ̄0 ̄)ノ
原文出处:https://www.cnblogs.com/hupo376787/p/10990899.html
今天关于archivedData(withRootObject:)' 在 iOS 12.0 中被弃用 - Swift 5 和 Flutter和swiftui支持ios12吗的介绍到此结束,谢谢您的阅读,有关Android Studio 制作的 Flutter Project 可以在 iOs 上实现 在你的 iOS 设备上测试你的 Flutter iOS 应用、crbug/1173575,非 JS 模块文件在 angular 中被弃用、findDOMNode 在带有 React.createRef() 的 StrictMode 中被弃用、Flutter - flutter desktop embedding / flutter 桌面支持等更多相关知识的信息可以在本站进行查询。
本文标签: