2011-02-08 3 views
10

तो मैं इस चेतावनी मिलती है:सिमेंटिक मुद्दा: असंगत सूचक प्रकार के पैरामीटर के लिए 'NSUInteger *' (उर्फ 'अहस्ताक्षरित int *') भेजने के रूपांतरण के लिए पूर्णांक 'NSUInteger'

Semantic Issue: Incompatible pointer to integer conversion sending 'NSUInteger *' (aka 'unsigned int *') to parameter of type 'NSUInteger' (aka 'unsigned int') 

असल में मैं खींच रहा हूँ एक JSON फ़ीड में .. इसके माध्यम से पाशन डेटा के साथ स्तंभों से मेल खाते हैं, तो एक वस्तु एक तालिका पंक्ति में इस्तेमाल किया जा करने के लिए डेटा रखने के लिए ...

NSDictionary *js_result = [response JSONValue]; 

NSLog(@"This is the LIST: %@",[js_result objectForKey:@"LIST"]); 
// get columns 
NSArray *columns = [[js_result objectForKey:@"LIST"] componentsSeparatedByString:@","]; 
// get data 
NSArray *rows = [[js_result objectForKey:@"QUERY"] objectForKey:@"DATA"]; 



NSUInteger *study_id_int = (NSUInteger *)[columns indexOfObject:@"STUDY_ID_DICOM"]; 
NSUInteger *study_desc_int = (NSUInteger *)[columns indexOfObject:@"STUDY_DESCRIPTION"]; 
NSUInteger *study_date_int = (NSUInteger *)[columns indexOfObject:@"STUDY_DATETIME"]; 
NSUInteger *modality_int = (NSUInteger *)[columns indexOfObject:@"MODALITY"]; 
NSUInteger *referring_physician_name_int = (NSUInteger *)[columns indexOfObject:@"REFERRING_PHYSICIANS_NAME"]; 
NSUInteger *patient_id_dicom_int = (NSUInteger *)[columns indexOfObject:@"PATIENT_ID_DICOM"]; 
NSUInteger *patient_name_int = (NSUInteger *)[columns indexOfObject:@"PATIENT_NAME"]; 
NSUInteger *birth_date_int = (NSUInteger *)[columns indexOfObject:@"BIRTH_DATE"]; 
NSUInteger *institution_name_int = (NSUInteger *)[columns indexOfObject:@"INSTITUTION_NAME"]; 
NSUInteger *study_recvd_datetime_int = (NSUInteger *)[columns indexOfObject:@"STUDY_RECVD_DATETIME"]; 
NSUInteger *image_count_int = (NSUInteger *)[columns indexOfObject:@"Image_Count"]; 
NSUInteger *patient_study_count_int = (NSUInteger *)[columns indexOfObject:@"PATIENT_STUDY_COUNT"]; 



StudyListRow *StudyRow = [[StudyListRow alloc] init]; 

for(NSMutableArray *i in rows) 
{ 
    NSLog(@"ROW DATA: %@",i); 
    StudyListRow *StudyRow = [[StudyListRow alloc] init]; 
    StudyRow.study_id_dicom = (NSString *)[i objectAtIndex:study_id_int]; 
    StudyRow.study_description = [i objectAtIndex:study_desc_int]; 
    StudyRow.study_datetime = [i objectAtIndex:study_date_int]; 
    StudyRow.modality = [i objectAtIndex:modality_int]; 
    StudyRow.referring_physician_name = [i objectAtIndex:referring_physician_name_int]; 
    StudyRow.patient_id_dicom = [i objectAtIndex:patient_id_dicom_int]; 
    StudyRow.patient_name = [i objectAtIndex:patient_name_int]; 
    StudyRow.birth_date = [i objectAtIndex:birth_date_int]; 
    StudyRow.institution_name = [i objectAtIndex:institution_name_int]; 
    StudyRow.study_recvd_datetime = [i objectAtIndex:study_recvd_datetime_int]; 
    StudyRow.image_count = [i objectAtIndex:image_count_int]; 
    StudyRow.patient_study_count = [i objectAtIndex:patient_study_count_int]; 



} 

StudyRow से प्रत्येक .... रेखाएं चेतावनी देती हैं .. और मैं हूं ई कोई विचार क्यों .. विचार?

+1

आप वास्तव में चेतावनी यह आपको बताता है पढ़ें क्यों - यानी आप गुजर रहे हैं के बजाय वस्तुओं संकेत "प्रकार के पैरामीटर के लिए 'NSUInteger' 'NSUInteger *' (उर्फ 'अहस्ताक्षरित int *') भेज"। – Abizern

+0

मैं चेतावनी पढ़ा है .. लेकिन यह करने के लिए नए जा रहा है सब .. मैं .. एक NSUinteger के लिए एक NSUinteger भेजने के रूप में पढ़ मैं भी नोटिस नहीं किया था * ... – Critter

+0

यहाँ वास्तविक समस्या है: आप एक चेतावनी मिल गया लेकिन शुरू कर दिया इस धारणा के साथ कि चेतावनी के बारे में कुछ अजीब बात है। प्रारंभिक धारणा यह होनी चाहिए कि कोड में कुछ गड़बड़ है, और चेतावनी आपको बताएगी कि क्या गलत है। – gnasher729

उत्तर

22

लाइन्स इस तरह:

NSUInteger *study_id_int = (NSUInteger *)[columns indexOfObject:@"STUDY_ID_DICOM"]; 

होना चाहिए

NSUInteger study_id_int = (NSUInteger)[columns indexOfObject:@"STUDY_ID_DICOM"]; 

वे पुरातन वस्तुओं की ओर इशारा (जहां आप सिर्फ संकेत मिलता है कि तारांकन की आवश्यकता होगी) कर रहे हैं, नहीं।

+0

कि चाल किया था। धन्यवाद। – Critter

+0

@Joseph तुरा: स्पष्ट संपादित के लिए धन्यवाद! – Wevah

+0

मेरी खुशी ... :) –

5

NSUInteger VARNAME, नहीं NSUInteger * VARNAME होना चाहिए। वे primitives हैं।

+0

बंद अब पुरातन पर पढ़ने के लिए .. :) – Critter

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

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