2011-03-03 12 views
23

से संपत्ति मूल्य का उपयोग करता है, दृश्य नियंत्रक में प्रतिनिधि के संदर्भ के बिना कुछ दृश्य नियंत्रक से AppDelegate क्लास के प्रॉपर्टी वैल्यू का उपयोग कैसे करें?आईफोन ऐपडिलेगेट

उत्तर

48

मैं काफी यकीन है कि तुम क्या मतलब है नहीं कर रहा हूँ - वहाँ एक दृश्य नियंत्रक में अपने आवेदन प्रतिनिधि से जानकारी प्राप्त करने के लिए कई तरीके हैं, और वाक्यांश "प्रतिनिधि के संदर्भ बनाने के बिना" स्पष्ट नहीं है। आपके विकल्प मूल रूप से हैं:

  1. उचित प्रतिनिधि के रूप में आवेदन प्रतिनिधि का संदर्भ लें। आप अपने व्यू कंट्रोलर क्लास में कोड लिखेंगे जैसे:
    id propertyValue = [(MyAppDelegate *)[[UIApplication sharedApplication] delegate] myProperty];
  2. दृश्य नियंत्रक बनाते समय संपत्ति को पास करें। इसके लिए व्यू कंट्रोलर को @property घोषित करने और @synthesize डी उपयोग के लिए आवश्यक है, तो आपके पास ऐप प्रतिनिधि केवल व्यू कंट्रोलर इंस्टेंस पर संपत्ति सेट करेगा।

इन विकल्पों में से कोई भी आवश्यकता नहीं है कि आप अपने ऐप के प्रतिनिधि की एक प्रति @property के रूप में बनाए रखें, लेकिन पहले प्रतिनिधि प्रतिनिधि को संदर्भित करता है।

+0

एक और सवाल [यूआईपीप्लिकेशन साझा अनुप्रयोग] .delegate; क्या यह एक स्टैंडराइड तरीका है, मैं क्यों पूछ रहा हूं कि मुझे 3 अलग-अलग वर्ग फ़ाइलों में "साझा ऑब्जेक्ट" नामक एक संपत्ति की आवश्यकता है, "साझा ऑब्जेक्ट" ऐपडिलेगेट क्लास में रहता है? – Anandh

+1

जब तक आप संपत्ति को घर में रखने के लिए सिंगलटन क्लास बनाना नहीं चाहते हैं, '[[UIAplplication sharedAplication] प्रतिनिधि का उपयोग करके]' कई वर्गों के बीच उस संपत्ति तक पहुंचने का मानक तरीका है। (और आइए ईमानदार रहें; आप मूल रूप से एक सिंगलटन तक पहुंच रहे हैं। सिंगलेट्स को गुणा करने की कोई आवश्यकता नहीं है।) – Tim

19

[UIApplication sharedApplication] .delegate

आप भी अपने दृश्य नियंत्रक में एप्लिकेशन प्रतिनिधि हेडर फाइल शामिल करना होगा और संभवतः अपने वास्तविक एप्लिकेशन प्रतिनिधि वर्ग के लिए आईडी से प्रतिनिधि टाइपकास्ट।

#include "MyAppDelegate.h" 

((MyAppDelegate *)[UIApplication sharedApplication].delegate).myProperty; 
2
[UIApplication sharedApplication].delegate; 
+0

मैं इसे प्राप्त करने के वैकल्पिक विकल्प ढूंढ रहा हूं [यूआईपीप्लिकेशन साझा अनुप्रयोग] .delegate ;. 1. प्रकाशित/सदस्यता के माध्यम से मूल्य तक पहुंचने की तरह कुछ? 2. एक और सवाल [यूआईपीप्लिकेशंस साझा अनुप्रयोग]। डिलीगेट; क्या यह एक स्टैंडराड है, मैं क्यों पूछ रहा हूं कि मुझे 3 अलग-अलग वर्ग फ़ाइलों में "साझा ऑब्जेक्ट" नामक संपत्ति की आवश्यकता है, "sharedObject" AppDelegate क्लास में रहता है? – Anandh

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