我无法在任何地方访问我的数组对象,如何快速访问它们?

2023-12-07

如何在另一个函数中访问我的数组对象,即来自 arr 和电子邮件的数组对象。到目前为止,当我调用 auth.auth() 函数时,我只能访问 else 语句内的数组对象。我想知道如何才能做到这一点。

let store = CNContactStore()
            
            store.requestAccess(for: .contacts) { (granted, err) in
                if let err = err{
                    print(err.localizedDescription)
                    return
                }
                if granted{
                    print("Access granted")
                    let keys = [CNContactGivenNameKey, CNContactFamilyNameKey, CNContactEmailAddressesKey]
                    let req = CNContactFetchRequest(keysToFetch: keys as [CNKeyDescriptor])
                    do {
                        
                        try store.enumerateContacts(with: req) { (contact, stop) in
                            print(contact.emailAddresses.first?.value as Any)
                            if let em = contact.emailAddresses.first?.value{
                                //print("cool")
                                Auth.auth().fetchProviders(forEmail: em as String, completion: {
                                    (providers, error) in
    
                                    if error != nil {
                                        print("wierd")
                                    }else{
                                        if providers == nil{
                                            print("No active account")
                                        }else{
                                            self.emails.append(em as String)
                                            self.arr.append(contact.givenName + " " + contact.familyName)
                                            print("Active Account")
                                            print(self.arr)
                                            print(self.emails)
                                        }
                                    }
                                })
                            
                            }else{
                                //print("wow")
                            }
                        }
                        
                    }catch let err{
                        print(err.localizedDescription)
                    }
                }else{
                    print("Access denied")
                }
            }
            print("Arr")
            print(self.arr)
            print(self.emails)
            print("Emails")

我想知道如何在另一个函数中访问“arr”和“emails”中的数组元素,因为我的最终目标是将数组信息放在 tableView 中。


数据从 Firebase 异步加载。虽然您可以将其存储在可以从任何地方访问的变量中,但时间很重要。

在您的代码中,当print(self.arr)运行,则self.arr.append(...)还没跑。通过在这些行上放置断点并在调试器中运行代码,或者通过放置一些日志记录代码并检查其输出,您可以最轻松地看到这一点。

因此,所有需要数据库数据的代码都需要位于完成处理程序内或从那里调用。

有关此问题的更多信息以及解决方案示例,请参阅:

  • 代码未完成该功能,正在中途结束执行,这又包含更多链接
  • 使用 Firebase 编写异步代码
  • 为什么我的从数据库提取信息的函数不起作用?,其中还有更多链接
  • 在加载数据之前完成所有异步请求?,使用调度组
  • 异步 Swift 调用数组
  • 使用完成块之外的变量
  • 等待两个异步完成函数完成,然后再执行下一行代码
  • 在加载数据之前完成所有异步请求?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我无法在任何地方访问我的数组对象,如何快速访问它们? 的相关文章

  • 将自定义数据包含到 iOS 故障转储中

    你好 堆栈溢出 有一个简单的问题要问您 当我的应用程序在用户的设备上崩溃时 是否可以将自定义错误数据嵌入到自动生成的 iOS 故障转储中 例如 我的 SQlite 数据库由于某种原因无法运行 例如 数据库文件已损坏 我无法从这个错误中恢复
  • 如何制作带有 SWIFT 图像的弹出窗口

    我想知道如何制作类似于此示例的弹出窗口 原始窗口充满了按钮 选择这些按钮后将拉出我想要使用的图像 我会简单地创建一个可重用的UIView组件以及作为子视图所需的一切 例如UIImageView为了你的形象 UILabel or a UIBu
  • 如何从 SDK 实现每个会话的 Google Places 自动完成功能?

    是否可以从 Android 和 iOS 应用程序的 place sdk 实现基于会话的自动完成 根据 6 月 11 日生效的新 Google 地图框架定价 对自动完成的请求可以分为基于击键 会话的请求 我找不到描述实施步骤的文档 除了这个参
  • 错误域=kAFAssistantErrorDomain 代码=209“(空)”

    我面临着一个问题SFSpeechRecognizer 启动应用程序几秒钟后 我开始收到错误消息 错误域 kAFAssistantErrorDomain 代码 209 空 和 错误 域 kAFAssistantErrorDomain 代码 2
  • ios swift parse:从 3 个类收集数据

    我有这样的结构 User CardSet 带有指向 User objectId 的指针 user 和 col name 带有点 cards 的卡片到 Card Set objectId 和列 name 我想选择所有卡数据 包括当前用户的卡集
  • 为什么 iOS 启动屏幕很慢?

    我的 iOS 应用程序启动屏幕大约需要 3 5 秒 我有一张将在启动屏幕后加载的地图 我的用户必须等待启动屏幕加载 然后再等待 3 秒才能加载地图 有没有办法最大限度地减少启动屏幕时间 基本上这种延迟意味着you在启动过程中做了一些非常错误
  • 使用未解析的标识符“FlurryAdInterstitial”

    我正在尝试整合Flurry Interstitial Ads使用cocoapods in Swift and Xcode 7 1 1 我正在关注开发人员雅虎网站上的此文档 https developer yahoo com flurry d
  • 最小化代表性整数的误差之和

    Given n integers between 0 10000 as D1 D2 Dn where there may be duplicates and n can be huge I want to find k distinct r
  • 在 Play2 和 Scala 中解析没有数据类型的 JSON

    people name Jack age 15 name Tony age 23 name Mike age 19 这是我试图解析的 json 示例 我希望能够对每个人进行 foreach 操作并打印他们的姓名和年龄 我知道当 json 数
  • “预期的 ';'在 Swift 下的顶级声明符之后”

    我正在尝试将所有颜色设置在一个 Swift 文件中 该文件可以在我的整个应用程序中使用 下面的代码会导致 import Foundation import UIKit class DotColors let tsblueColor UICo
  • 访问目标 c 中的类方法。使用 self 还是类名?

    我正在学习 iOS 编程 并且对以下有关关键字 self 的使用的代码感到困惑 据我了解 self就像Java的this 它指的是当前实例 当我想调用类方法时 通常的方式应该是这样 PlayingCard validSuits 但是侵入实例
  • 根据一个数组对多个数组进行排序

    如何根据数组对一堆数组进行排序createdAt 例如 2015 11 02 19 19 35 0000 将它们组合成另一种类型 字典 以便在 tableView 中使用是否有益 如果有的话如何 var comment AnyObject
  • 使用 python/numpy 重塑数组

    我想重塑以下数组 gt gt gt test array 11 12 13 14 21 22 23 24 31 32 33 34 41 42 43 44 为了得到 gt gt gt test2 array 11 12 21 22 13 14
  • 如何解决 Xcode 5 中的红色(已移动)文件?

    在 Xcode 4 中 当您要移动文件时 可以通过单击右侧菜单中的按钮并通过 Finder 选择新位置来解析文件的新位置 在 Xcode 5 中 右侧菜单中没有按钮 我还没有找到任何方法通过右键单击文件或顶部菜单栏选项来指定文件的新位置 在
  • firebase :: 无法读取 null 的属性“props”

    你好 我正在尝试将react router与firebase一起使用 但它给了我这个错误 无法读取 null 的属性 props 这正是代码 我正在其中使用我的反应路由器 向下代码位于作为登录面板组件的组件上 else if this em
  • iOS:如何知道 reloadData() 已完成其任务?

    我想滚动到给定索引 self boldRowPath 但是当我调试时scrollToRow之前执行reloadData 如何知道reloadData已完成 func getAllTimeEvent self arrAllTimeEvent
  • 在 Swift 中从 Parse 加载图像

    我成功地将数据从 Parse 提取到 swift 中 但我的图像似乎没有按照我的方式工作 在我的 cellForRowAtIndexPath 方法中 我执行以下操作 var event AnyObject eventContainerArr
  • SpriteKit的更新函数:时间与帧率

    一般来说 我对编程和 Spritekit 很陌生 并且有兴趣探索毫秒和帧率之间的关系 以及如何使用更新函数作为两者之间的中介 帧率与毫秒 从本质上讲 帧速率和时间之间的主要区别在于时间始终一致 而帧速率则不然 由于密集的图形程序 它可能会下
  • 对具有混合类型值的数组进行数字排序

    我有一个像这样的混合数组 fruits array lemon Lemon 20 banana apple 121 40 50 然后申请sort 其功能如下 sort fruits SORT NUMERIC foreach fruits a
  • 更改 iOS7 中 UIAlertView 的字体大小

    我想更改alertView中消息文本和标题文本的字体大小 苹果网站上没有任何文档谈到这一点 但苹果在其子类注释中表示 UIAlertView 类旨在按原样使用 请参考以下链接 https developer apple com librar

随机推荐