如何解决从Xcode 11更新为12后的应用程序委托/场景委托和Firebase问题
所以我一直在构建我的第一个应用程序,最近我更新到Xcode 12时,发生了多个问题...
我注意到不再有应用程序和场景委托文件,但我的项目仍在使用它。想知道如何清理而不将所有内容复制并粘贴到新项目中。
我也有多个警告说:
“ iOS模拟器部署目标'IPHONEOS_DEPLOYMENT_TARGET'设置为8.0,但是支持的部署目标版本范围是9.0至14.0.99。”
我目前的部署目标是iOS13。如果将其更改为9,则URLIMAGE模块会出现一个错误,因为它的最小值为11。当将其更改为11时,我将存在999多个错误... >
我不知道要放什么!
我还与URLImage一起看到,我的Firebase无法正常工作,并且大部分UI都消失了。 我正在运行一个instagram教程,我的“主页”提要现在为空。我的故事供稿文件仍然可以正常工作,不确定是否与firebase或URLImage有关?
我玩过这个视图,并在故事滚动视图的下面添加了一个矩形,它已经出现了,所以我怀疑它与Firebase有关。
当前代码:
import SwiftUI
import URLImage
import Firebase
struct HomeView: View {
@ObservedObject var homeViewModel = HomeViewModel()
var body: some View {
NavigationView {
ScrollView(.vertical,showsIndicators: false) {
Story()
Rectangle().frame(width: 200,height: 200).foregroundColor(.red)
if !homeViewModel.isLoading {
ForEach(self.homeViewModel.posts,id: \.postId) { post in
VStack(alignment: .center) {
HeaderCell(post: post)
FooterCell(post: post)
}.background(Color.white).cornerRadius(10)
.padding(.leading,10).padding(.trailing,10)
}
}
}
这是我的HomeViewModel:
import Foundation
import SwiftUI
import Firebase
class HomeViewModel: ObservableObject {
@Published var posts: [Post] = []
@Published var isLoading = false
var listener: ListenerRegistration!
// init() {
// loadTimeline()
// }
func loadTimeline() {
self.posts = []
isLoading = true
Api.Post.loadTimeline(onSuccess: { (posts) in
self.isLoading = false
if self.posts.isEmpty {
self.posts = posts
}
},newPost: { (post) in
if !self.posts.isEmpty {
self.posts.insert(post,at: 0)
}
}) { (listener) in
self.listener = listener
}
}
}
任何帮助将不胜感激!
解决方法
在看不到您的代码的情况下,很难说出所见问题的确切原因是什么。但是,要回答您的一些问题:
- 您仍然可以使用旧的方式设置应用程序(使用
AppDelegate
和SceneDelegate
。有关更多详细信息,请参见我的回答here - 您可以放心地忽略警告。如果这让您感到困扰,请查看this answer,以找到与Pod的部署目标相匹配的方法。
关于您的UI消失的原因,如果可以在日志输出中提供几个相关的代码片段和几行内容,将很有用。另外,请确保检查您的安全规则设置是否正确。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。