我對Firebase真的很陌生,但我開始喜歡它。所以我在將快照的值傳遞給塊之外時遇到問題。iOS Firebase如何在Block之外傳遞快照值/鑰匙
我想使用NSStrings和/或NSarrays成爲快照的價值。以便我可以在我的其他代碼中使用它們。
這裏是我的代碼
NSString *string1;
NSArray *array1;
Firebase *usersRef = [fb childByAppendingPath:@"Parent name"];
FQuery *statesRef = [usersRef queryOrderedByChild:@"email"];
FQuery *specificStateRef = [statesRef queryEqualToValue:@"user name"];
[specificStateRef observeEventType:FEventTypeChildAdded withBlock:^(FDataSnapshot *snapshot) {
//NSLog(@"snapshot: %@", snapshot);
NSLog(@" key: %@", snapshot.key);
NSLog(@" value: %@", snapshot.value);
//HELP ME HERE
array1=[[NSarray alloc]initwithObjects:snapshot.value];
string1=snapshot.key;
}];
所以外面這一塊,如果我寫的。
NSLog(@" String1 = %@", string1);
NSLog(@" Array1 = %@", array1);
不幸的是,string1和array1的值都等於零。如何從Firebase獲取值,然後在整個代碼中使用它們。我怎樣才能將這些值從塊中取出?感謝你們
嘿周杰倫謝謝。這很糟糕,我在這個街區之外工作,但是你推薦什麼旗幟?因爲在塊外讀取時整數或字符串的值等於null。所以如果在塊內我設置整數等於1,在整數值不等於1的塊之外。那麼你推薦什麼標記機制?如果你沒有答案,這很難,所以不用擔心,我很感激幫助。 – user3352739
你的評論更多的是一個迅速/ objc的問題,並在我的答案回答;定義塊外的變量(如數組),然後在從Firebase返回數據時設置塊內的值。舉例來說,如果你想填充一個數組作爲tableView的dataSource。在塊外定義數組,通過.value查詢數據。然後迭代填充數組的快照(仍在塊中),然後在完成該迭代時刷新tableView。 – Jay
我不想要一個tableview。我真的需要弄清楚這一點。 – user3352739