2013-01-16 25 views
5

से एनएसएसटींग मैं ऐरे से एक स्ट्रिंग बनाने की कोशिश कर रहा हूं। लेकिन, नीचे बताया गया है कि इसे कैसे उत्पन्न किया जाना चाहिए, इसकी स्थिति है।NSArray

NSArray *array=[NSArray arrayWithObjects:@"Hello",@"World",nil]; 
[array componentsJoinedByString:@","]; 

यह आउटपुट होगा: हैलो, वर्ल्ड।

लेकिन, यदि पहली वस्तु खाली है, तो केवल दूसरा प्राप्त करने का कोई तरीका है।

  1. हैलो, @ "" => हैलो
  2. @ "", वर्ल्ड => विश्व
  3. नमस्कार, दुनिया => नमस्कार, दुनिया
+1

आप एक 'NSArray' में नहीं के बराबर नहीं डाल सकते [@" "," दुनिया "] क्या आप' की तरह @ कुछ मतलब है, 'उपज चाहिए' @ "दुनिया" के 'बजाय '", वर्ल्ड "'। –

+0

@ करलवीज़ी इसकी @ "", शून्य नहीं। धन्यवाद। – andyPaul

उत्तर

13

ऐसा करने का एक और तरीका सरणी की एक परिवर्तनीय प्रतिलिपि लेना और केवल मान्य वस्तुओं को निकालना है। यह शायद की तरह कुछ:

NSMutableArray *array = [[NSArray arrayWithObjects:@"",@"World",nil] mutableCopy]; 
[array removeObject:@""]; // Remove empty strings 
[array removeObject:[NSNull null]]; // Or nulls maybe 

NSLog(@"%@", [array componentsJoinedByString:@","]); 
+0

@bbum नहीं। यह किसी भी वस्तु को हटा देगा। बस [दस्तावेज़ों की जांच करें] (https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSMutableArray_Class/Reference/Reference.html) या कोड का परीक्षण करें ... इससे पहले कि आप डाउनवोट करें । – Alladinian

+0

@bbum यह काम करता है और सभी @ "हटा देता है। – andyPaul

+0

हर्प डी डेरप .... वहां जाओ। आपको लगता है कि मैं जानता हूं कि 1 99 4 से एनएसएआरएआरई का उपयोग करने से (संपादित करें ताकि मैं ऊपर उठा सकूं)। – bbum

4

आप nil मूल्यों NSArrayमें संग्रहीत नहीं कर सकता *, तो उत्तर "नहीं" है। आपको एक कॉमा जोड़ने की आवश्यकता है या नहीं, इसका ट्रैक रखने के लिए आपको स्वयं को सरणी को पुन: सक्रिय करने की आवश्यकता है। एन एस संग्रह में

NSMutableString *res = [NSMutableString string]; 
BOOL first = YES; 
for(id item in array) { 
    if (id == [NSNull null]) continue; 
    // You can optionally check for item to be an empty string here 
    if (!first) { 
     [res appendString:@", "]; 
    } else { 
     first = NO; 
    } 
    [res appendFormat:@"%@", item]; 
} 


* nil मूल्यों NSNull वस्तुओं के साथ प्रतिनिधित्व कर रहे हैं।