【问题标题】:App Delegate/Scene Delegate and Firebase issues after updating from Xcode 11 to 12 [closed]从 Xcode 11 更新到 12 后的 App Delegate/Scene Delegate 和 Firebase 问题 [关闭]
【发布时间】:2021-01-19 23:23:06
【问题描述】:

所以我一直在构建我的第一个应用程序,当我最近更新到 Xcode 12 时,出现了多个问题......

我注意到不再有应用程序和场景委托文件,但我的项目仍在使用它。想知道如何在不将所有内容复制并粘贴到新项目中的情况下清理它。

我也有多个警告说:

“iOS 模拟器部署目标 'IPHONEOS_DEPLOYMENT_TARGET' 设置为 8.0,但支持的部署目标版本范围是 9.0 到 14.0.99。”

我目前的部署目标是 iOS 13。如果我将其更改为 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
        }

    }
}

任何帮助将不胜感激!

【问题讨论】:

  • 这被标记为 Firebase,但问题中没有 Firebase 代码或引用。尝试读取数据时,安全规则可能会阻止加载,甚至可能您未通过身份验证。但是,如果没有更多信息,很难说。

标签: firebase swiftui xcode12


【解决方案1】:

如果没有看到您的代码,很难说出您所看到的问题的确切原因。但是,要回答您的一些问题:

  1. 您仍然可以使用旧的应用设置方式(使用AppDelegateSceneDelegate。有关详细信息,请参阅我的回答here
  2. 您可以放心地忽略这些警告。如果它很困扰您,请查看 this answer 以了解与您的 pod 的部署目标相匹配的方法。

至于为什么你的 UI 消失了,如果你能提供一些相关的代码 sn-ps 和你的日志输出中的几行,那将会很有用。另外,请务必检查您的安全规则是否设置正确。

【讨论】:

  • 感谢您的帮助,我已经用我的代码更新了我的问题。让我知道这是否为您提供了足够的信息来查看问题!干杯
  • 您似乎从未触发加载数据。
  • 很奇怪,因为它在更新之前没有改变。只更新一次就停止工作了?
  • HomeViewModel.loadTimeline() 永远不会在您在此处发布的代码中调用,因为 init() 方法已被注释掉。请尝试取消注释该方法。
  • 更新前已注释掉。从那以后我没有更改任何代码。我尝试取消注释,但仍然没有。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多