2011-07-05 12 views

उत्तर

9

आपका ऐप वास्तविक क्वेरी नहीं करता है। ऐसा करने का सही तरीका आपकी वेबसाइट के लिए एक एपीआई स्थापित करना है ताकि साइट क्वेरीिंग करे और आपके ऐप पर उपयुक्त डेटा लौटा दे।

आपकी एपीआई आम तौर पर कई अंत बिंदुओं में शामिल होने जा रही है जो आपके ऐप के लिए स्वरूपित डेटा लौटाती हैं। उदाहरण के लिए, आप एक PHP या पायथन पृष्ठ बना सकते हैं जो किसी दिए गए उपयोगकर्ता के लिए सभी पोस्ट के लिए आपके डेटाबेस से पूछताछ करता है और उन्हें JSON या XML एन्कोडेड सरणी में देता है। (डेटा प्रारूप पूरी तरह से आपके ऊपर है। आईओएस के लिए उपलब्ध दोनों प्रारूपों को पार्स करने के लिए ढांचे हैं।)

उदाहरण के लिए, मान लें कि आपके पास अपने सर्वर पर एक PHP पृष्ठ है जो सप्ताह के वर्तमान दिन को लौटाता है। आपका पीएचपी कुछ इस तरह दिखेगा:

<?php 
    echo date("l"); 
?> 

मान लें कि के रूप में http://example.com/dayoftheweek.php

इस सहेज कर रखा है कि मैं अपने अनुप्रयोग के भीतर से HTTP अनुरोध के प्रदर्शन के लिए ASIHTTPRequest ढांचे का उपयोग करना चाहिये करते हैं। उस ने कहा, चलो आगे बढ़ें और अपने PHP पेज से कनेक्शन स्थापित करें।

NSURL *url = [NSURL URLWithString:@"http://example.com/dayoftheweek.php"] 
ASIHTTPRequest *request = [[ASIHTTPRequest alloc] initWithURL:url]; 
[request setDelegate:self]; 

अब, आप ASIHTTPRequest प्रतिनिधि तरीकों को लागू दिए गए डेटा पार्स करने के लिए की जरूरत है,: मान लें कि आप ASIHTTPRequest सब यहाँ अपनी परियोजना में स्थापित किया है, क्या एक अनुरोध लग सकता है की तरह है। विधि है जो एक पूर्ण किया गया अनुरोध हैंडल यहाँ दिखाया गया है:

- (void)requestFinished:(ASIHTTPRequest *)request{ 
    //Here you would store the returned data and/or parse it 
} 

एक API को लागू करने के लिए, अपने PHP पृष्ठ और अधिक जटिल हो जाएगा। आप वैरिएबल में गुजरने के लिए एक और जटिल अनुरोध तैयार करेंगे, और PHP पृष्ठ नियमित वेब सेवा की तरह कार्य करेगा, आपके द्वारा अनुरोधित डेटा को वापस कर देगा।

+0

लेकिन किस प्रकार के http अनुरोध? मैं वास्तव में एक एपीआई कैसे बना सकता हूँ? क्या वह PHP है? ऐसा करने का एक तरीका क्या होगा? – StanLe

+0

मुझे नहीं लगता कि उसे वास्तव में एक डुप्लिकेट उत्तर की आवश्यकता है। – pt2ph8

+0

@StanLe - मैंने एक मूल उदाहरण के साथ अद्यतन किया है। @ pt2ph8 - मुझे ऐसा नहीं लगता है, इसलिए मैंने अपना जवाब अपडेट कर लिया है। ;-) – Moshe

0

मुझे लगता है कि आपका मतलब MySQL है। आमतौर पर MySQL डेटाबेस तक पहुंच बाहर से, और अच्छे कारण से प्रतिबंधित है। आप एक एपीआई लिखना चाह सकते हैं जो इसके बजाय आपके डेटाबेस तक पहुंचता है। आपका आईफोन ऐप डेटा को सम्मिलित करने और पुनर्प्राप्त करने के लिए इस एपीआई के साथ संवाद करेगा।

+0

तो किस तरह का एपीआई? क्या मैं कुछ PHP स्क्रिप्ट या कुछ पसंद करूंगा? – StanLe

+0

हाँ। सबसे सरल चीज जो आप कर सकते हैं वह एक PHP स्क्रिप्ट है जो जेएसओएन या एक्सएमएल स्वरूपित डेटा को आपके द्वारा पारित पैरामीटर के आधार पर लौटाती है। फिर आप ASIHTTPRequest प्लस के आस-पास कई JSON और XML लाइब्रेरीज़ का उपयोग करके अपने ऐप से उस डेटा को पार्स करते हैं (मैं JSON के लिए YAJL और XML के लिए GData की अनुशंसा करता हूं) और इसके साथ कुछ करता हूं। – pt2ph8

+0

आप वेब सेवाओं का उपयोग कर सकते हैं। मान लें कि आप सर्वर डेटाबेस से कुछ उपयोगकर्ता के लिए एक आईडी प्राप्त करना चाहते हैं। इसे प्राप्त करने के लिए, एक वेब सेवा API हो सकता है - (NSNumber *) IDForUserWithName: (NSString *) उपयोगकर्ता नाम। यह कॉल आपके सर्वर पर जाती है जो आंतरिक रूप से डेटाबेस से पास उपयोगकर्ता नाम के लिए आईडी लाती है। – Subhash

0

@StanLe: आप सीधे देशी अनुप्रयोग के भीतर SQL सर्वर या MySQL का उपयोग नहीं कर सकते। हालांकि आप अपने आवेदन को बाहरी SQL डेटाबेस के साथ निम्नलिखित तरीके से संवाद कर सकते हैं।

  1. PHP, या सी # या किसी भी उपकरण का उपयोग कर एक्सएमएल एपीआई बनाएं जो परिणामस्वरूप एक्सएमएल फ़ाइल प्रदान करता है।
  2. , xcode में कुछ पार्सर (NSXMLParser) का प्रयोग करें एक्सएमएल पृष्ठ के टैग पढ़ सकते हैं।

यहाँ example

है यहाँ sample Code

है एक और बहुत Simple Example

यदि अभी भी किसी भी भ्रम कृपया वापस लिखें।

+0

मैं PHP से थोड़ा परिचित हूं और पहले PHP में SQL क्वेरी बना चुका हूं। केवल एक चीज जो मुझे चिंतित करती है वह है कि मैंने क्वेरी के परिणामों को कंसोल (कंप्यूटर स्क्रीन पर) मुद्रित किया है। मैं उन परिणामों को कैसे लपेटूंगा और उन्हें उद्देश्य-सी में पढ़ूंगा? – StanLe

+0

क्या आप मुझे कुछ विवरण बता सकते हैं, जैसे आप किस डेटाबेस और प्लेटफ़ॉर्म का उपयोग कर रहे हैं, और मूल ऐप में आप किस प्रकार के परिणाम देखना चाहते हैं? – Xorsat

+0

एक्सेलेंट लिंक। एकमात्र चीज जो मैं फंस गया हूं वह है कि मेरे सर्वर पर एक php फ़ाइल कैसे चलाएं जैसे www.mysite.com/myfile.php उद्देश्य-सी से और परिणाम वापस प्राप्त करें। मैं एक विशेष इनपुट (जैसे नाम) के साथ एक php फ़ाइल चलाने में सक्षम होना चाहता हूं जिसका उपयोग डेटाबेस से पूछताछ के लिए किया जाएगा। फिर PHP मेरे MySQL डेटाबेस से एक पंक्ति लौटाएगा। तब मेरा उद्देश्य-सी उस परिणाम को प्राप्त करेगा। – StanLe

0

दृष्टिकोण है कि किसी भी बाहरी डेटाबेस के साथ संवाद करने में किया जाता है Webservices (जो हम एपीआई के रूप में यहां बुला रहे हैं) के माध्यम से है। आप सर्वर को एक अनुरोध जो सामान्य रूप से सर्वर पर एक समारोह कॉल है और सर्वर का अनुरोध किया डेटा के साथ आप उत्तर बनाते हैं।

आप This के माध्यम से जा सकते हैं। जहां तक ​​PHP और अन्य प्रासंगिक शर्तों का संबंध है, तो आपको कुछ प्रयास करना होगा और कुछ कोड Google करना होगा। This कुछ उपयोग भी हो सकता है। आम तौर पर आईफोन के लिए लिखे गए वेब सर्विसेज आईफोन के लिए एक्सएमएल/जेएसओएन का उपयोग करते हैं। JSON/XML पार्सर उपलब्ध हैं

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