2012-09-27 9 views
5

का उपयोग कर आईओएस 5.1 सिम्युलेटर चलाने वाले मुद्दे मैंने हाल ही में अपने एक्सकोड को 4.5 संस्करण में अपग्रेड किया है और अब मुझे समस्याएं आ रही हैं जब मैं आईओएस 5.0/5.1 में एप्लिकेशन विकसित करने का प्रयास करता हूं।एक्सकोड 4.5

मैंने एक साधारण आईपैड गेम विकसित किया जहां उपयोगकर्ता को संवाददाता शब्दों के साथ छवियों से मिलान करने की आवश्यकता है। इन सभी वस्तुओं को UIImageView में संग्रहीत किया जाता है, यदि यह प्रासंगिक है। समर्थित इंटरफ़ेस अभिविन्यास केवल परिदृश्य है।

जब मैं आईपैड 6.0 सिम्युलेटर का उपयोग करके अपना आवेदन चलाता हूं तो सबकुछ बिना किसी समस्या के ठीक काम करता है। लेकिन जब मैं इसे 5.1 का उपयोग करके चलाने की कोशिश करता हूं, तो सबकुछ गलत हो जाता है। छवियां बस प्रकट नहीं होती हैं और मेरी पृष्ठभूमि छवि किनारे पर दिखाई देती है और दोहराई जाती है। स्टेटस बार भी गलत तरीके से दिखाई देता है: डिवाइस अभिविन्यास परिदृश्य है, लेकिन साइडबार दाईं तरफ दिखाई देता है। यह तब भी नहीं होता जब मैं 6.0 सिम्युलेटर का उपयोग करता हूं।

प्रोजेक्ट विवरण में मैंने पहले ही आईओएस परिनियोजन लक्ष्य को 5.1 में बदल दिया है, साथ ही स्टोरीबोर्ड में भी। आईओएस 5.1 परिनियोजन का उपयोग स्टोरीबोर्ड को लक्षित करने के लिए मुझे "ऑटोलायआउट का उपयोग करें" विकल्प चुनने की अनुमति न दें, इसलिए मैंने इस विकल्प को अचयनित किया। क्या यह इस विकल्प के कारण होता है?

मैंने पहले से ही एक डिवाइस में अपना आवेदन चलाने की कोशिश की है, लेकिन नतीजा वही है। चूंकि मैंने एक्सकोड 4.5 स्थापित किया है, इसलिए मैंने इस तरह के मुद्दों को शुरू किया है, उदाहरण के लिए मैं आईओएस 5.x सिम्युलेटर में "मास्टर-विस्तार एप्लिकेशन" टेम्पलेट को ठीक से नहीं चला सकता, क्योंकि जब मैं "जोड़ें" बटन पर क्लिक करता हूं तो यह दुर्घटनाग्रस्त हो जाता है ।

क्या मुझे एसडीके 6 का उपयोग करके बनाए गए 5.x अनुप्रयोग चलाने के लिए कुछ याद आ रहा है? मैंने पहले से ही कई मंचों में खोज की है लेकिन मुझे अभी तक इस तरह की समस्या का कोई समाधान नहीं मिला है। मुझे किसी भी प्रकार के सुझावों को सुनकर खुशी होगी, क्योंकि मैंने इस मुद्दे के आसपास बहुत समय पहले ही खो दिया है और मैं विकल्पों से बाहर हूं।

[संपादित करें]: मुझे एक विवरण याद आया जो शायद इस समस्या के लिए प्रासंगिक हो सकता है: स्टोरीबोर्ड में मेरा दृश्य एक कस्टम दृश्य है। मैंने एक कक्षा बनाई जो UIView से फैली हुई है ताकि मैं अपनी वस्तुओं के बीच रेखा खींचने के लिए drawRect फ़ंक्शन को ओवरराइड कर सकूं। फिर स्टोरीबोर्ड में, दृश्य में, मैंने कस्टम कक्षा -> कक्षा में अपनी कक्षा का चयन किया।

मैंने देखा कि जब मैं 5.1 सिम्युलेटर चलाता हूं तो स्थिति बार प्रारंभ में शीर्ष पर दिखाई देता है और फिर जब खिड़की लोड होती है तो यह दाईं ओर जाती है।

यदि आप कोई अन्य विवरण जानना चाहते हैं तो कृपया मुझसे पूछें।

बहुत बहुत धन्यवाद।

उत्तर

2

क्या आपने यह सुनिश्चित करने के लिए अपनी स्टोरीबोर्ड की जांच की है कि आपने ऑटोलाउट बंद कर दिया है? Autolayout केवल आईओएस 6 के साथ काम करता है। इंटरफेस बिल्डर दस्तावेज़ के तहत फ़ाइल इंस्पेक्टर एरिया में अपने व्यू कंट्रोलर को देखते समय यह विकल्प पाया जा सकता है। यह एक चेकबॉक्स

+0

हां, जैसा कि मैंने अपने प्रारंभिक प्रश्न में कहा था, मैंने ऑटोलाउट बंद कर दिया। यदि यह विकल्प चेक किया गया है, तो एक्सकोड मुझे 5.1 सिम्युलेटर का उपयोग करके प्रोजेक्ट चलाने भी नहीं देता है। – fabioalmeida

+0

मैंने देखा कि 5.1 सिम्युलेटर में लैंडस्केप ओरिएंटेशन रखने के लिए मुझे कंट्रोलर को चाहिएऑटोरोटेट टॉइंटरफेसऑरिएंटेशन विधि को ओवरराइड करने की आवश्यकता है, लेकिन स्टोरीबोर्ड में परिभाषित मेरी छवियां अभी भी दिखाई नहीं दे रही हैं। क्या मुझे कुछ और बदलने की ज़रूरत है ताकि यह 6.0 सिम्युलेटर में 6.0 में ठीक से काम करे? – fabioalmeida

0

ऐसा लगता है कि आप XCode 4.5 में सिम्युलेटर 5.1 समस्याओं वाले एकमात्र व्यक्ति नहीं हैं। Bug in iPhone Simulator 5.1 with Xcode 4.5 using UIManagedDocument मेरे ऐप्स भी तोड़ दिए। 5.0 सिम अच्छी तरह से काम करने लगता है।

+0

मेरी समस्या 5.0 और 5.1 दोनों में होती है। उदाहरण के लिए, मैं किसी भी आईओएस 5.x सिम्युलेटर में "मास्टर-विवरण एप्लिकेशन" टेम्पलेट को ठीक से नहीं चला सकता, लेकिन यह 6.0 में ठीक काम करता है। – fabioalmeida

4

अंग्रेजी मेरी देशी नहीं है तो कृपया मेरी व्याकरण ...

माफ जहाँ तक अपने मास्टर-विस्तार के रूप में बटन मुद्दा "जोड़ें", यह क्या मेरे लिए काम किया है।

मैं क्या बता सकते हैं, की वजह से ऐप्लिकेशन क्रैश:

[UITableView dequeueReusableCellWithIdentifier:forIndexPath:]: unrecognized selector sent to instance 

त्वरित सहायता का कहना है:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell" forIndexPath:indexPath]; 
    [self configureCell:cell atIndexPath:indexPath]; 
    return cell; 
} 
:

- (id)dequeueReusableCellWithIdentifier:(NSString *)identifier forIndexPath:(NSIndexPath *)indexPath declaration is only available in iOS (6.0 and later). 

तो मैं MasterViewController.m में कोड को बदलने की कोशिश की

कोड के लिए जो पुराने संस्करणों में उपयोग किया गया एक्सकोड:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    static NSString *CellIdentifier = @"Cell"; 

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
    if (cell == nil) { 
     cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; 

    } 
    [self configureCell:cell atIndexPath:indexPath]; 
    return cell; 
} 

उम्मीद है कि इससे मदद मिलती है।