【发布时间】:2015-01-09 13:03:59
【问题描述】:
我从 parse 中检索了值,并一一存储在一个名为“sto_tit”的数组中。 但是,如果我尝试打印这些值,我将无法打印。它仅在循环内打印,但不会在 FOR LOOP 或 OUTSIDE ELSE 块之外打印,我不知道我的代码中有什么错误。请指导我!
下面是我的代码:
func parse_db()
{
var sto_tit = [String]() // EITHER GLOBAL DECLARATION or INSIDE BLOCK, SAME ISSUE
// FACING
par_query.selectKeys(["story_title"])
par_query.findObjectsInBackgroundWithBlock({(NSArray objects, NSError error) in
if (error != nil) {
NSLog("error " + error.localizedDescription)
}
else
{
self.results = NSArray(array: objects)
//NSLog("results %@", results)
for i in 0...self.results.count
{
self.par_object = self.results.objectAtIndex(i) as PFObject
var sto = self.par_object["story_title"] as String
sto_tit.append(sto)
println("Check_1 \(sto_tit)") // PRINTING [A],[AB],[ABC] ...
} //FOR ENDS
println("HELLO") // GETS SKIPPED
println("Check_2 \(sto_tit)") // GETS SKIPPED
} // ELSE ENDS
println("Check_3 \(sto_tit)") // GETS SKIPPED
}) //PARSE ENDS
println("Check_4 \(sto_tit)") //PRINTING "Check_4 []"
} // BLOCK ENDS
【问题讨论】:
-
如果我正确理解了这个问题,您似乎在说“check2”没有被打印出来。这意味着你的 else 块中的整个代码都没有被执行。 if语句为真时的代码是什么?
-
糟糕!根据我的情况, Else 块只能执行。因此, FOR LOOP 将被执行。因此,将打印“CHECK_1”。但是,一旦 FOR LOOP 结束,应该执行 CHECK_2,但该行会被跳过。不知道为什么?
-
sto_tit 是如何声明的?
-
嗨!我已经在我的问题中更新了我的完整代码。指导我。
-
我正在看你现在重新发布,但我也尝试将 sto_tit 设为实例变量(在任何函数之外,但在类中)。我用你自己得到了同样的预期结果。语法。
标签: if-statement swift nsarray