2012-12-19 18 views
9

मैजिकल रेकॉर्ड का उपयोग करके, मैं एक विशेष क्लाइंट नम्बर के साथ रिकॉर्ड प्राप्त करने का प्रयास कर रहा हूं जो एक एनएसआईएनटेगर (डेटा प्रकार के रूप में int16 के रूप में परिभाषित) है।एनएसआईएनटेगर त्रुटि

ClientInfo *clientSelected = [ClientInfo MR_findFirstByAttribute:@"aClientNumber" withValue: clientNumber inContext:localContext]; 

अद्यतन:

MR_findFirstByAttribute:(NSString *) withValue:(id) 

यह त्रुटि मैं हो रही है: यह MR_findFirstByAtytribute की परिभाषा है

इस कोड को जहाँ मैं त्रुटि मिल रही है की मेरी लाइन है:

Implicit conversion of NSInteger (aka int) is disallowed with ARC 

मेरे जीवन के लिए, मुझे नहीं लगता कि क्या गलत है। ClientInfo रूप

@interface ClientInfo : NSManagedObject 
+0

यह है कह रहे हैं कि आप एनएसआईएनटेगर का उपयोग करने की कोशिश कर रहे हैं - एक "स्केलर" - जहां ऑब्जेक्ट पॉइंटर की अपेक्षा की जाती है। –

+0

यह मुझे बिल्कुल समझ में नहीं आता है ... तो यह क्या होना चाहिए? – SpokaneDude

+0

हम यह नहीं बता सकते कि यह MR_findFirstAttribute विधि विवरण को देखे बिना क्या होना चाहिए, लेकिन यह एक NSNumber की अपेक्षा कर रहा है जिसे आपको '[NSNumber numberWithInt: clientNumber]' –

उत्तर

18

withValue के लिए पैरामीटर प्रकार एक id (एक सूचक) है परिभाषित किया गया है। NSInteger एक स्केलर मान (ऑब्जेक्ट नहीं) है और इसे सूचक रूप से एक सूचक मूल्य में परिवर्तित नहीं किया जा सकता है।

यह विशुद्ध रूप से एक अनुमान है, लेकिन NSInteger से एक NSNumber काम कर सकते हैं बनाना:

NSNumber *val = [NSNumber numberWithInteger:clienNumber] 
ClientInfo *clientSelected = [ClientInfo MR_findFirstByAttribute:@"aClientNumber" withValue:val inContext:localContext]; 
+0

तो मुझे यह कैसे ठीक करना चाहिए? – SpokaneDude

+0

@ spokane-dude: अद्यतन उत्तर। – mipadi

+0

एक्सकोड 4.5 अब आईओएस 4.3 के पिछड़े संगतता के साथ शाब्दिक का समर्थन करता है, इसलिए '@ (clientNumber) 'का उपयोग करके अधिक क्लीनर दिखता है। – tia

0

विधि यह उम्मीद कर रहा है और id की अपनी परिभाषा के अनुसार और अपने यह गुजर रहे एक NSInteger उर्फ ​​int

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

  • कोई संबंधित समस्या नहीं^_^