ios - Delete a value from NSMutable Array -


मेरे पास NSMutableArray नामित _groupCategoryCurrentIds जिसका डेटा इस प्रारूप में है

  ({id = 2; नाम = फैशन;}, {id = 5; नाम = अवकाश}}, {id = 14; नाम = वस्त्र;}, {id = 17; नाम = खेल;}, {आईडी = 2; नाम = फैशन;}, {आईडी = 36; नाम = पुरुष;}, {आईडी = 34; नाम = वुडलैंड;}, {आईडी = 30; नाम = सहायक;}, { आईडी = 4; नाम = मनोरंजन;}, {आईडी = 40; नाम = शिक्षा;})   

मैं वस्तु = 40 के साथ ऑब्जेक्ट को हटाने का प्रयास कर रहा हूं और यह मैं कैसे करता हूं यह

  _groupCategoryCurrentIds = [[_groupCategoryCurrentIds फ़िल्टर किया गयाअनुप्रयोग का उपयोग करना: [NSPredicate predicateWithFormat: @ "आईडी में नहीं% @", @ "40"]] म्यूटिवकॉपी];   

लेकिन यह ऑब्जेक्ट को id = 4 के साथ भी हटाता है। कोई भी सुझाव जो मैं गलत कर रहा हूं?

उपयोग करें

  [ NSPredicate predicateWithFormat: @ "id! =% @", @ "40"]   

या

  [NSPredicate predicateWithFormat: @ "id! =% @ ", @ 40]   

इस बात पर निर्भर करता है कि आईडी स्ट्रिंग के रूप में या एक संख्या के रूप में संग्रहीत है या नहीं।

ध्यान दें कि आप अपने कोड को सरल बना सकते हैं

  [_ groupCategoryCurrentIds फिल्टर उपयोग कर रहा है मान्य: ...];   

यदि _groupCategoryCurrentIds एक अस्थिर सरणी है।


"किसी" में एक अरबी में परीक्षण की सदस्यता के लिए प्रयोग किया जाता है या सेट, उदाहरण के लिए

  [NSPredicate predicateWithFormat: @ "आईडी आईडी% @", @ [@ 40, @ 50]]   

सभी प्राप्त करने के लिए ऑब्जेक्ट्स जहां आईडी न तो 40 या 50 है।

दाएं हाथ पर स्ट्रिंग के साथ "IN" का उपयोग करना दस्तावेज में नहीं है। ऐसा व्यवहार लगता है जैसे "एक उपस्ट्रिंग है", ताकि आपके मामले में

  [NSPredicate predicateWithFormat: @ "आईडी आईडी% @", @ "40"]  < / पूर्व> 

सभी ऑब्जेक्ट देता है जहां आईडी "40" का उपस्ट्रिंग नहीं है इससे आपका परिणाम समझा जाएगा लेकिन फिर से, यह व्यवहार दस्तावेज नहीं है।

Comments