मैं एक छोटे से नींव उपकरण परीक्षण (ऑब्जेक्टिव-सी) है कि मैं के साथ खेल रहा हूँ है और मैं कुछ सवाल है ...एनएसएमयूटेबलएरे में स्ट्रिंग ऑब्जेक्ट्स जोड़ना?
#import <Foundation/Foundation.h>
int main (int argc, const char * argv[]) {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
int planetLoop;
NSString *tempString;
NSMutableArray *planetArray = [[NSMutableArray alloc] init];
NSLog(@"STRING ARRAY ... Start");
for(planetLoop=0; planetLoop<10; planetLoop++) {
tempString = [NSString stringWithFormat: @"Planet_%03d", planetLoop+1];
NSLog(@"Planet_%03d", planetLoop+1);
[planetArray addObject:tempString];
}
[planetArray release];
[pool drain];
return 0;
}
सबसे पहले, आम तौर पर मैं एक सरणी में जोड़ने के बाद एक वस्तु जारी है, लेकिन क्या मैं यह सोचने में सही हूं कि वर्तमान में मेरे पास क्या सही है क्योंकि "tempString" एक स्ट्रिंग अक्षर है, और इस तरह आवंटित या रिलीज़ करने की आवश्यकता नहीं है?
दूसरा, जब मैं इसे चलाता हूं (निष्पादन से पहले) मुझे निम्न त्रुटि मिलती है "अज्ञात लोड कमांड 0x80000022 पढ़ने में असमर्थ" अगर यह मेरे कोड में कोई समस्या है? Google पर खोज से ऐसा लगता है कि यह xCode 3.1.2 में एक बग हो सकता है, किसी के पास कोई विचार है?
अंत में कुछ भी मैं गलत कर रहा हूँ, विचार "Planet_010"
संपादित करने के लिए के माध्यम से 10 स्ट्रिंग "Planet_001" के साथ एक सरणी को भरने के लिए है: आह, मैं देख रहा हूँ, "= [NSString" बिट की क्योंकि thats यानी
// Autoreleased object
tempString = [NSString stringWithFormat: @"Planet_%03d", planetLoop+1];
// String literal
tempString = @"Planet_";
बहुत धन्यवाद, बहुत -gary-
वह पूल जारी करता है: [पूल नाली] –
धन्यवाद दोस्तों, मुझे लगता है कि अब क्या हो रहा है, ऊपर वर्णित छोटे संपादन ... – fuzzygoat
@ क्रिस आप सही हैं। मुझे पता नहीं था कि 'नाली' एक 'रिलीज' करता है। –