|
|
1
2
听起来像你
认为
您要做的是阻止执行,直到身份验证完成。这个
可以
可能的话
相反,您可能应该接受在进行身份验证时会有一段不确定的时间,在此期间,您的应用程序应保持处理处于某种中间状态,然后使用 回调 当身份验证完成时通知您,然后您可以继续对已验证的用户执行所需的任何操作。
有很多方法可以做到这一点,但问题中没有足够的细节来确切说明哪种方法最好。但你似乎已经在使用类似的东西
显然,这只是一个素描,并不打算按原样使用。在等待状态下,您需要考虑应用程序中发生了什么,正在进行身份验证,但是
|
|
|
2
0
我想你是这么说的
如果它在主线程上运行操作,最好的策略是立即从
如果它在后台线程上运行该操作,最简单的方法是设置另一个类似于handler的方法(顺便说一下,方法和变量的命名约定是从小写开始),然后使用
|
|
|
3
0
Jeremyp和WalkTalky的答案都是正确的,它们是创建响应式用户界面的核心。经验法则: 如果您在主线程上执行潜在的阻塞操作(如联网),则会遇到麻烦。 至少有两个原因:
所以要完成这些事情,可能需要一些时间,你必须在后台线程上完成。正如Jeremyp和WalkyTalky的两个答案所指出的,你经常会收到一个回调。这很好,但总共有三种信息传递方式:
这三个都可以使用。他们之间有细微的差别。最重要的一点是,委派是1:1消息传递,而另一个是1:N消息传递。 既然这样说了,就不要认为你必须用无头螺栓。查看nsOperation和nsOperationQueue。它们允许在操作中封装工作片段,并允许它们在后台的队列上运行。另外,如果将这些回调与@selector(methodname:)语法一起使用,则会有一些新的内容:blocks。通常有一些等价的方法将块而不是选择器作为回调执行。 要完成这一点,有一条金科玉律: 您可以在后台线程上更新您的模型,但决不能在后台线程上更新您的UI。 查看有关这些主题的WWDC10视频。有一个关于网络的两部分很好的讨论,详细解释了这些概念。 |
|
|
George Kim · 如何在iOS中模拟特定坐标空间中的触摸? 2 年前 |
|
|
BENG · 协调C++和Objective-C中结构的填充 2 年前 |
|
|
Community wiki · iPhone上ivar的继承问题 2 年前 |
|
|
Community wiki · 在OpenGL中显示YUV 2 年前 |
|
|
YosiFZ · pod更新依赖关系pod 2 年前 |
|
|
Community wiki · 查找iOS日历 2 年前 |