मैं उद्देश्य-सी में सरणी के भीतर पॉइंटर्स से संबंधित एक समस्या में आया हूं।डीएसईफ़्रेंसिंग द्वारा एनएसएआरएआरई के भीतर मूल्यों को बदलें?
जो मैं करने की कोशिश कर रहा हूं वह पॉइंटर्स को एनएसएआरएआरई में ले जाता है, उन्हें एक विधि में पास करता है, और उसके बाद लौटा मूल्य वापस मूल सूचक (सूचक जो सरणी से संबंधित होता है) को असाइन करता है।
सी और सी ++ से जो कुछ मुझे पता है, उसके आधार पर पॉइंटर्स को डिफ्रेंस करके, मैं उन मानों को बदलने में सक्षम होना चाहिए जो वे इंगित करते हैं ... यहां वह कोड है जिसका मैं उपयोग कर रहा हूं, लेकिन यह काम नहीं कर रहा है (एनएसएलओजी आउटपुट के आधार पर मूल्य फोन बिंदु कभी नहीं बदलते हैं)। चर फोन के साथ PHONENUMBERS भीतर
- (NSString*) removeNonNumbers: (NSString*) string;
आप देख सकते हैं, मैं पुनरावृत्ति कर रहा हूँ प्रत्येक NSString * के माध्यम से:
NSArray *phoneNumbers = [phoneEmailDict objectForKey:@"phone"];
for (NSString* phone in phoneNumbers) {
(*phone) = (*[self removeNonNumbers:phone]);
NSLog(@"phone:%@", phone);
}
और यहाँ विधि हस्ताक्षर मैं करने के लिए NSString * गुजर रहा है। मैं फोन को हटाने के लिए पास करता हूं नॉनबॉर्स: जो संशोधित एनएसएसटींग * लौटाता है। मैं फिर हटा देता हूं पॉइंटर को हटाए गए नंबर से वापस लौटाता है और फोन को मान असाइन करता है।
जैसा कि आप बता सकते हैं, शायद मैं उद्देश्य-सी वस्तुओं को अच्छी तरह समझ नहीं पा रहा हूं। मुझे यकीन है कि यह सी ++ या सी में काम करेगा, लेकिन मैं नहीं देख सकता कि यह यहां क्यों काम नहीं करता है! आपकी सहायता के लिये पहले से ही धन्यवाद!