2010-02-19 11 views
5

है, क्या एनएसएआरएआरई के साथ तेज गणना का उपयोग करना संभव है जिसमें एनएस डिक्शनरी है?एक एनएसएमयूटेबलएरे के साथ फास्ट एन्युमरेशन जिसमें एनएस डिक्शनरी

मैं कुछ उद्देश्य सी ट्यूटोरियल के माध्यम से चल रहा हूँ, और निम्नलिखित कोड GDB मोड में सांत्वना किक

NSMutableArray *myObjects = [NSMutableArray array]; 
NSArray *theObjects = [NSArray arrayWithObjects:@"easy as 1",@"easy as two", @"Easy as Three"]; 
NSArray *theKeys = [NSArray arrayWithObjects:@"A",@"B",@"C"];  
NSDictionary *theDict = [NSDictionary dictionaryWithObjects:theObjects forKeys:theKeys]; 
[myObjects addObject:theDict]; 

for(id item in myObjects) 
{ 
    NSLog(@"Found an Item: %@",item); 
} 

अगर मैं एक पारंपरिक गिनती पाश

int count = [myObjects count]; 
for(int i=0;i<count;i++) 
{ 
    id item; 
    item = [myObjects objectAtIndex:i]; 
    NSLog(@"Found an Item: %@",item); 
} 

साथ तेजी से गणन पाश की जगह एप्लिकेशन क्रैश के बिना चलता है, और शब्दकोश कंसोल विंडो में आउटपुट होता है।

क्या यह फास्ट गणना की सीमा है, या क्या मुझे भाषा का कुछ संक्षेप में याद आ रहा है? क्या इस तरह के संग्रह घोंसला करते समय अन्य गठिया हैं?

बोनस अंक के लिए, मैं इसे स्वयं डीबग करने के लिए जीडीबी का उपयोग कैसे कर सकता था?

उत्तर

10

ओह! arrayWithObjects: को शून्य-समाप्त करने की आवश्यकता है। निम्नलिखित कोड ठीक है:

NSMutableArray *myObjects = [NSMutableArray array]; 
NSArray *theObjects = [NSArray arrayWithObjects:@"easy as 1",@"easy as two", @"Easy as Three",nil]; 
NSArray *theKeys = [NSArray arrayWithObjects:@"A",@"B",@"C",nil];  
NSDictionary *theDict = [NSDictionary dictionaryWithObjects:theObjects forKeys:theKeys]; 
[myObjects addObject:theDict]; 

for(id item in myObjects) 
{ 
    NSLog(@"Found an Item: %@",item); 
} 

मुझे यकीन नहीं है कि एक पारंपरिक पाश का उपयोग क्यों करें इस त्रुटि को छुपाया।

+0

आह, मेरे पसंदीदा सिम्स में से एक। "जो चीज आपने सोचा था वह सही ढंग से काम नहीं कर रहा था"। नौसिखिया सलाह के लिए धन्यवाद! –

+3

यदि आप एक्सकोडैट ("एक्सकोड में printf/scanf को टाइप चेक करें" चालू करते हैं, तो संकलक इस बारे में चेतावनी देगा। यदि आप एक्सकोड में भी वार्ता ("चेतावनियों के रूप में चेतावनियों के रूप में चेतावनी" चालू करते हैं), संकलक इस गलती पर संकलन विफल कर देगा। –

+0

धन्यवाद पीटर, बहुत उपयोगी! –

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