2015-01-02 6 views
18

मैं एकाधिक 'गणना' बेमेल परिणाम, पैरामीटर प्रकार के साथ पाया या एप्लिकेशन निर्माण करते समय त्रुटि विशेषताओं नामित तरीकों हो रही है जिम्मेदार बताते हैं। ऐप 32 बिट में ठीक काम कर रहा था। मैंने Apple guideline के अनुसार इसे 64 बिट में बदल दिया है। मैंने इस Link को संदर्भित किया है लेकिन कोई मदद नहीं मिली है।Xcode 6.1: एकाधिक तरीकों नाम 'गिनती' बेमेल परिणाम, पैरामीटर प्रकार के साथ पाया या

मैंने सिम्युलेटर पर कई उपकरणों पर ऐप का परीक्षण किया है। यह 32 बिट पर ठीक काम करता है लेकिन 64 बिट में त्रुटि को संकेत देता है। ऐसा क्यों है? मुझे लगता है कि 64-बिट में अलग लेकिन में एक ही हैं int और NSInteger -

-(void)serviceSuccessFulForPatientSelect:(id)response 
{ 
    [self hideOverlay]; 
    if([response isKindOfClass:[NSArray class]]) 
    { 
     if([response count]>0) 
     { 
      if(1) 
      { 
       ... 
      } 
     } 
    } 
    [refillDetailTable reloadData]; 

} 

Error

+0

प्रयास के साथ किसी भी संपत्ति है। –

उत्तर

9

समाधान 1: मैं एक दृश्य नियंत्रक में संपत्ति के रूप में गिनती की घोषणा की थी। मैंने इसका नाम बदलकर काउंटरवैल्यू और समस्या हल हो गई।

समाधान 2: आप उपयुक्त डेटाटाइप टाइप-कास्ट कर सकते हैं। के बाद से वहाँ थे [response count] युक्त जगह के 1000s

if([(NSArray *) response count]>0) { 
    ... 
} 

यह समाधान मेरे मामले में संभव नहीं था।

22
if([response count]>0) 

response एक id यहाँ त्रुटि पता चलता है कि वहाँ कई तरीकों count कहा जाता है जो विभिन्न प्रकार की वापसी कर रहे हैं, 32.

ठीक करने के लिए, एक डाली प्रदर्शन:

if([(NSArray*)response count]>0) 
+1

कास्टिंग के लिए यह संभव नहीं है क्योंकि आसपास के 1000s के स्थान बदल सकते हैं ... कोई अन्य फिक्स –

+1

हजारों जगहें? आपका विकल्प अन्य गिनती विधि (संभावित रूप से आपके कोड में) ढूंढना है और रिटर्न प्रकार बदलना है। लेकिन अगर आपके पास हजारों आईडी ऑब्जेक्ट्स हैं जो आप गिन रहे हैं, तो यह गलत लगता है। – jrturton

0

डबल आपकी प्रतिक्रिया की जाँच, वहाँ नाम गिनती "गिनती" कॉल करने से पहले NSArray के जवाब कास्ट करने के लिए

+0

अगर यह समस्या है? –

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