2010-11-15 5 views
5

ठीक है, मुझे इसके साथ कठिन समय है। मैंने पिछले घंटे की खोज की है और मुझे वह नहीं मिला है जो मैं गलत कर रहा हूं। मैं एक प्रेषक के वर्तमान टाइटल को लेने की कोशिश कर रहा हूं, फिर इसे एक पूर्णांक में परिवर्तित करूँगा ताकि मैं इसे कॉल करने के लिए कॉल में उपयोग कर सकूं।प्रारंभिक अंक के बिना पूर्णांक से पॉइंटर बनाता है

NSString *str = [sender currentTitle]; 
NSInteger *nt = [str integerValue]; // this is where the error appears // 
NSString *nextScreen = [NSString stringWithFormat:@"Screen_%@.jpg", [screenList objectAtIndex:nt]]; 

मुझे लगता है यह [str integerValue] बिट ठीक से इस्तेमाल नहीं किया जा रहा के साथ कुछ है, लेकिन मैं एक उदाहरण है कि काम करता है नहीं मिल रहा।

धन्यवाद!

उत्तर

16

की त्रुटि संदेश का विश्लेषण करते हैं:

प्रारंभ (NSInteger nt) एक डाली बिना पूर्णांक ([str integerValue]) से सूचक (*) बनाता है।

इसका मतलब यह है कि आप एक चर की सूचक प्रकार के गैर-सूचक प्रकार ([str integerValue] है, जो एक NSInteger रिटर्न) के एक चर असाइन करने की कोशिश कर रहे हैं। (NSInteger *)।

NSInteger के बाद * से छुटकारा और आप ठीक होना चाहिए:

#if __LP64__ || (TARGET_OS_EMBEDDED && !TARGET_OS_IPHONE) || TARGET_OS_WIN32 || NS_BUILD_32_LIKE_64 
typedef long NSInteger; 
typedef unsigned long NSUInteger; 
#else 
typedef int NSInteger; 
typedef unsigned int NSUInteger; 
#endif 
+2

:

NSString *str = [sender currentTitle]; NSInteger nt = [str integerValue]; // this is where the error appears // NSString *nextScreen = [NSString stringWithFormat:@"Screen_%@.jpg", [screenList objectAtIndex:nt]]; 

NSInteger मशीन निर्भर अभिन्न डेटा प्रकार है, जो इतनी तरह परिभाषित किया गया है के लिए एक प्रकार का आवरण है यह सही है। शायद ऑब्जेक्ट प्लेटफॉर्म से संक्रमण करने वाले उपयोगकर्ताओं में से एक सबसे अधिक भ्रमित हो जाता है। –

+1

इस तेजी से उत्तर के लिए बहुत बहुत धन्यवाद। उस चाल ने और आपके टूटने से मुझे "क्यों" बहुत तेज़ समझने में मदद मिली! – Eric

+0

@Eric आप बहुत स्वागत है। यही है स्टैक ओवरफ्लो के लिए है! :) –

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