- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在开发一款新应用程序,该应用程序主要用于组织网络内容中的信息。它将是一款用于监控道琼斯指数股息 yield 的金融应用程序。为此,需要执行几个步骤,但我现在正在执行第一步。我想选取道琼斯指数中的 30 家公司,查找它们当前的 yield ,然后根据该数字对它们进行排名。现在我正在更新一个数组,以提供所有 30 家公司的 yield (即 [2.7、3.6、5.5、1.3 等...])。这是我当前的代码,我的问题如下:
let dowDic = ["MMM", "AXP", "AAPL", "BA", "CAT", "CVX", "CSCO", "KO", "DIS", "DD", "XOM", "GE", "GS", "HD", "IBM", "INTC", "JNJ", "JPM", "MCD", "MRK", "MSFT", "NKE", "PFE", "PG", "TRV", "UTX", "UNH", "VZ", "V", "WMT"]
var dowYield = [1.11, 2.11, 3.11, 4.11, 5.11, 6.11, 7.11, 8.11, 9.11, 1.11, 1.11, 2.11, 3.11, 4.11, 5.11, 6.11, 7.11, 8.11, 9.11, 1.11, 1.11, 2.11, 3.11, 4.11, 5.11, 6.11, 7.11, 8.11, 9.11, 1.11]
var counter = 0
@IBOutlet var label: UILabel!
@IBAction func refresh(sender: AnyObject) {
print(dowYield)
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
print(dowDic.indexOf("WMT"))
for x in dowDic {
print(x)
let url = NSURL(string:"http://finance.yahoo.com/q?s=\(x)")!
print(url)
let task = NSURLSession.sharedSession().dataTaskWithURL(url) { (data, response, error) -> Void in
//will happen after complete
if let urlContent = data {
let webContent = NSString(data: urlContent, encoding: NSUTF8StringEncoding)
let websiteArray = webContent?.componentsSeparatedByString("<th scope=\"row\" width=\"48%\">Div & Yield:</th><td class=\"yfnc_tabledata1\">")
if websiteArray!.count > 0 {
let nextWebsiteArray = websiteArray![1].componentsSeparatedByString(" </td></tr>")
if nextWebsiteArray.count > 0 {
let websiteSum = nextWebsiteArray[0].componentsSeparatedByString(" (")
if websiteSum.count > 0 {
let finalYield = websiteSum[1].componentsSeparatedByString("%")
let WTF = Double(finalYield[0])
print(finalYield[0])
self.dowYield[self.counter] = WTF!
self.counter++
}
}
}
}
}
task.resume()
}
print("flag")
print(dowYield)
}
我希望应用程序更新数组“dowYield”并稍后在 viewDidLoad 中访问它,但我只能使用按钮获取更新的打印输出。目前,打印屏幕首先打印出股票代码和网址,全部打印出来。然后它跳到代码底部并打印“flag”文本,然后打印原始的、未经编辑的“dowYield”数组。然后它一张一张地打印出新的产量。关于这里的操作顺序以及如何访问 viewDidLoad 中更新的数组以便我想使用这些新信息进行的 future 操作有什么见解吗?谢谢你!
最佳答案
这就是异步代码的工作原理。您启动一个运行的异步作业,它会自行继续运行,直到一段时间后完成。
将此视为 dispatch 某人为您办事。当你让他们去办事的那一刻,事情还没有完成,你也不知道他们到底需要多长时间才能完成。所以你就去做其他事情,等待他们回来告诉你工作已经完成。
这就是数据任务中完成 block 的用途。它是保存供以后使用的代码,并在数据任务运行完成后执行。您可以确定在 viewDidLoad 退出之前不会调用该代码。
您想要做的是在完成 block 内添加一个调用,使用 dispatch_async(dispatch_get_main_queue())
在主线程上更新 UI数据已下载。
关于ios - viewdidload 操作顺序中的网页内容数组很奇怪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35383839/
我正在学习 objective-c 教程,并注意到 viewDidLoad 中的代码放在 super viewDidLoad 下,而不是第一次调用 viewDidLoad。 代码放在viewDidLo
在Apple的scrollView示例中,他们没有这样称呼。我一直认为这是必须的。我为什么要这样调用它? 最佳答案 如果您要重写该方法,您仍然应该在 super 中调用该方法。即使父类(super c
这个问题已经有答案了: Why/when do we have to call super.ViewDidLoad? (6 个回答) 已关闭 4 年前。 override func viewDidLo
大家好,我有一个双 View Controller 。 我的 firstviewcontroller 有一个按钮,这个按钮发送 NSNotification,secontviewController
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: Do I always have to call [super viewDidLoad] in the -v
我有一个关于子类化的问题。 我从我的第一个 View 开始:在我的 .h 文件中: @interface viewAController : UIViewController 在我的 .m 文件中:
我读到一篇文章说,当创建 UIViewController 类时,属性需要为零,然后 Storyboard 或在调用 viewDidLoad 时将其添加到值中。 它表示在构造对象时也无法初始化属性。
这是我当前的代码。我什至没有通过 viewDidLoad 方法覆盖,因为在它说 super viewdidload 的那一行它抛出错误 @interface for uitableview 为选择器
import UIKit class SecondViewController: UIViewController { @IBOutlet weak var labelA: UILabel!
我需要设置和存储一些可用于 View 的 NSUserDefaults 数据。这不适用于 viewDidLoad。 这可以做到吗? 在 viewDidLoad 之前我可以使用什么方法? 你会推荐什么?
当我向主视图 Controller 中的 viewDidLoad 添加方法时,我的 iPhone 应用程序崩溃了: #import "dbQuestionGetterViewController.h"
当用户切换到另一个程序然后再次返回时,原始程序的 View 将被另一个程序的新 View 替换。那么当用户切换回原来的程序时,viewDidLoad会被第二次调用吗? 我问这个是因为如果是这种情况,那
全部, 我正在从我的 applicationDidFinishLaunching 方法创建一个 windowController ... (void)applicationDidFinishLaunc
这个问题已经有答案了: Looking to understand the iOS UIViewController lifecycle (11 个回答) iPhone SDK: what is th
关闭。这个问题是opinion-based .它目前不接受答案。 想改进这个问题?更新问题,以便 editing this post 可以用事实和引用来回答它. 5年前关闭。 Improve this
我知道viewDidLoad在 UIViewController 期间可能会多次调用方法的生命周期。但这怎么可能?如何让它多次调用而不是直接调用它?我试过这样做: UIView *view = [
我在使用 iOS 时遇到了一点问题。我使用协议(protocol)在两个 View Controller 之间来回传递数据并手动切换 View 。我的问题是,当我关闭顶 View 时,不再调用底 Vi
我正在开发一款新应用程序,该应用程序主要用于组织网络内容中的信息。它将是一款用于监控道琼斯指数股息 yield 的金融应用程序。为此,需要执行几个步骤,但我现在正在执行第一步。我想选取道琼斯指数中的
我需要采用 viewDidLoad 方法中填充的变量来显示在连接到自定义单元格的标签上。我想做的是: 查找数据库中存储的用户盒子中的 SKU 使用SKU查找数据库中存储的产品详细信息 将产品详细信息存
我正在 viewDidLoad 中使用异步任务函数,根据返回的响应,我正在更改 View (颜色、文本...),但我有“错误”: 有时,当我更改 View 并返回 View 时,我的 View 背景没
我是一名优秀的程序员,十分优秀!