का उपयोग करते समय "EXC_BAD_ACCESS" दिया जाता है, तो मैं md5 स्ट्रिंग को वास्तविक पासवर्ड के बजाय क्लास इंस्टेंस वैरिएबल के रूप में स्टोर करने का प्रयास कर रहा हूं। मेरे पास एक स्थिर फ़ंक्शन है जो एक md5 स्ट्रिंग लौटाएगा जिसे मैं वास्तविक पासवर्ड की बजाय इंस्टेंस वैरिएबल में स्टोर करने का प्रयास कर रहा हूं।उद्देश्य-सी परिणाम क्लास इंस्टेंस वैरिएबल में सहेजा गया है जब
मैं मेरी कक्षा उदाहरण चर के लिए निम्नलिखित सेटर:
-(void)setPassword:(NSString *)newpass{
if(newpass != password){
password = [utils md5HexDigest:newpass];
}
}
यह सही md5 स्ट्रिंग वापस गुजरती हैं और मेरी init समारोह में पासवर्ड चर करने के लिए इसे बचाने के लिए होगा: [आत्म setPassword: pword] ;.
अगर मैं एक और उदाहरण विधि कॉल और self.password तक पहुँचने का प्रयास EXC_BAD_ACCESS "" मैं मिल जाएगा "।
मैं समझता हूँ कि स्मृति जारी किया जा रहा है, लेकिन मुझे यकीन है कि यह रहता है कोई सुराग नहीं है।
मैं कोई भाग्य के साथ autorelease साथ alloc init की कोशिश की है
यह md5HexDigest समारोह init (कृपा एक और stackoverflow प्रश्न में पाया जाता है) के दौरान बुलाया जा रहा है:।
+ (NSString*)md5HexDigest:(NSString*)input {
const char* str = [input UTF8String];
unsigned char result[CC_MD5_DIGEST_LENGTH];
CC_MD5(str, strlen(str), result);
NSMutableString *ret = [NSMutableString stringWithCapacity:CC_MD5_DIGEST_LENGTH*2];
for(int i = 0; i<CC_MD5_DIGEST_LENGTH; i++)
[ret appendFormat:@"%02x",result[i]];
return ret;
}
किसी भी मदद/पॉइंटर्स की सराहना की जाएगी। एमडी 5 स्ट्रिंग को एमडी 5 को कॉल करने वाले वास्तविक पासवर्ड की तुलना में स्मृति में सहेजा गया होगा, जब भी मुझे पासवर्ड का उपयोग करने की आवश्यकता होती है।
अग्रिम धन्यवाद।
आप अपने इंटरफेस की सामग्री को पोस्ट कर सकते हैं? – Alex
क्या समस्या नहीं है कि आपके पास ऑब्जेक्ट है जो स्वत: है? डीबग [ret retainCount] [पासवर्ड retainCount] के लिए teh कंसोल के retaincount प्रिंट करने का प्रयास करें [पासवर्ड retainCount] –
नहीं, retainCount पर कॉल न करें। – pwc