2012-12-01 14 views
5

मेरे आईओएस ऐप में, मैं Parse.com फ्रेमवर्क का उपयोग कर रहा हूं। जब ऐप पहली बार लॉन्च किया जाता है या उपयोगकर्ता साइन इन नहीं होता है, तो PFLogInViewController और PFSignUpViewController दृश्य पर दिखाई देगा। जब उपयोगकर्ता अपना खाता बनाता है, तो एप्लिकेशन स्वचालित रूप से उपयोगकर्ता को हमेशा बना देगा, लेकिन यह उपयोगकर्ता के तहत एक और चर भी बना देगा जिसे isPrivate कहा जाता है, जो बूलियन की मांग करता है। मेरा सवाल यह है कि currentUser के लिए isPrivate का मान प्राप्त करने के लिए मैं PFQuery का उपयोग कैसे करूं?Parse.com: PFQuery से पूछताछ डेटा PFUser currentUser

+0

उपयोगकर्ताओं को क्वेरी करने के लिए पीएफयूसर की अपनी विधि [पीएफयूसर क्वेरी] है। – Martol1ni

उत्तर

6

क्वेरीिंग आपको मानदंड से मेल खाने वाली कई वस्तुओं को खोजने में सहायता करती है। यह वास्तव में लागू नहीं होता है जब आप पहले से ही उस वस्तु को जानते हैं जो आप चाहते हैं (वर्तमान उपयोगकर्ता)। आप इस विशेष मामले में फैसला कर सकते हैं

[PFUser.currentUser[@"isPrivate"] boolValue]; 

हालांकि साथ कि क्या currentUser निजी है, आप वास्तव में निर्धारित करने के लिए उपयोगकर्ता एक अनाम उपयोगकर्ता (प्रकार स्वत उपयोगकर्ताओं द्वारा निर्मित) है कि क्या एक अलग क्षेत्र के रखने के लिए की जरूरत नहीं है । प्रयास करें:

[PFAnonymousUtils isLinkedWithUser:PFUser.currentUser]; 

यह सब प्रमाणीकरण utils (PFFacebookUtils, PFTwitterUtils, और PFAnonymousUtils) के लिए काम करता है। isLinkedWithUser यह निर्धारित करता है कि क्या उन लेख प्रणालियों के पास किसी विशेष उपयोगकर्ता के लिए प्रमाण-पत्र हैं।

+0

आइए कहें कि मेरे पास दूसरा भी है वैरिएबल जो एक सरणी है, मैं इसे ऐरे के साथ कैसे करूं? –

+1

यदि आप किसी विशेष ऑब्जेक्ट से मूल्य प्राप्त करने का प्रयास कर रहे हैं, तो आप यह मान सकते हैं कि जब आप उस प्रॉपर्टी को प्राप्त करते हैं तो आपको एनएसएआरएआरई वापस मिल जाएगी (यानी एनएसएआरएआरए * संपत्ति = myObj [@ "arrayProperty"]) अन्यथा, आप एक पी का उपयोग कर सकते हैं FQuery isEqualTo है। एक सरणी के खिलाफ एक स्केलर की तुलना करना ऑब्जेक्ट्स लौटाता है जहां स्केलर सरणी में होता है (उदा। यह पीएफएनस्टॉलेशन के साथ सबसे आम है, जहां क्लाउड कोड "चैनल" के ग्राहकों को "चैनल" के बराबर कहां देख सकता है)। –

+0

सबकुछ बढ़िया काम कर रहा है, लेकिन जब मैं कोशिश करता हूं [[PFUser.currentUser [@ "उपनाम"] stringValue]; कंसोल प्रिंट करता है: "- [__ एनएससीएफस्ट्रिंग स्ट्रिंग वैल्यू]: अज्ञात चयनकर्ता उदाहरण के लिए भेजा गया"। मैं क्या गलत कर रहा हूँ? –

6

PFObject, PFUser, और PFQuery के साथ खेलने के बाद, मुझे अपने प्रश्न का उत्तर मिला। आपको PFUser क्लास के प्रश्नों को PFQuery बनाना है, तो आपको क्वेरी को केवल currentUser username पर सीमित करना होगा, फिर आप isPrivate के मान का अनुरोध करते हैं।

PFQuery *query= [PFUser query]; 

[query whereKey:@"username" equalTo:[[PFUser currentUser]username]]; 

[query getFirstObjectInBackgroundWithBlock:^(PFObject *object, NSError *error){ 

    BOOL isPrivate = [[object objectForKey:@"isPrivate"]boolValue]; 

}]; 
+0

तो, मैं 'उपयोगकर्ता नाम' के बजाय 'नाम' द्वारा पीएफयूसर से पूछताछ करने का प्रयास कर रहा हूं। किसी कारण से, क्वेरी काम नहीं करती है। क्या मैं कुछ गलत कर रहा हूं? मैं मूल रूप से आपके जैसा सटीक कोड का उपयोग करता हूं लेकिन मुझे कोई परिणाम नहीं मिलता है ... :( – jsetting32

+0

@ jsetting32 कुछ चीजें हो सकती हैं, और कोड या अधिक पृष्ठभूमि जानकारी के साथ यह सिर्फ चारों ओर घूम रहा होगा अंधेरा, लेकिन कुछ चीजें जो कोड की दूसरी पंक्ति में हो सकती हैं, सुनिश्चित करें कि Parse.com डेटा ब्राउज़र में सटीक कुंजी मौजूद है और सुनिश्चित करें कि आपके पास 'नाम' सही है, यानी: जैसा कि नीचे वाला है आपके द्वारा वर्णित Parse.com डेटा ब्राउज़र में कुंजी। अन्य क्षेत्र जो मुझे लगता है कि आपको समस्याएं हो सकती हैं कोड की ब्लॉक के अंदर कोड की तीसरी पंक्ति है ... (वर्णों से बाहर चलाएं)। –

संबंधित मुद्दे