การต่อท้าย NSDictionary กับ NSDictionary อื่น ๆ


88

ฉันมีหนึ่งและมันโหลดขึ้นNSDictionary UITableViewหากผู้ใช้เลื่อนมากขึ้นฉันจะเรียก API และดึงข้อมูลใหม่ ข้อมูลนี้อยู่ในรูปแบบของNSDictionaryไฟล์. เป็นไปได้หรือไม่ที่จะเพิ่มใหม่NSDictionaryในรายการที่มีอยู่

คำตอบ:


207

คุณกำลังมองหาผู้ชายคนนี้:

[NSMutableDictionary addEntriesFromDictionary:]

ตรวจสอบให้แน่ใจว่าUITableViewพจนานุกรมของคุณคือNSMutableDictionary!

ตรวจสอบได้ที่นี่


9
ใช่ แต่ทำไมคุณต้องการให้รายการคีย์ซ้ำกันในพจนานุกรม
Johan Karlsson

2
สิ่งที่ฉันต้องการ-[NSDictionary dictionaryByAddEntriesFromDictionary:]คือไม่มีวิธีการดังกล่าวในNSDictionary.
DawnSong

เห็นได้ชัดว่ามันเป็นเพียงการดำเนินการร่วมกันของพจนานุกรมไม่ใช่รายการที่ซ้ำกัน @JohanKarlsson
DawnSong

3
@DawnSong ฉันจะสร้างหมวดหมู่ใน NSDictionary ถ้าฉันเป็นคุณด้วยวิธีการต่อไปนี้: + (instancetype)dictionaryByAddingEntriesFromDictionary:(NSDictionary *)dictionary { NSMutableDictionary *combinedDictionary = [NSMutableDictionary dictionaryWithDictionary:self]; [combinedDictionary addEntriesFromDictionary:dictionary]; return combinedDictionary; } ขออภัยสำหรับปัญหาการจัดรูปแบบ StackOverflow ไม่อนุญาตการจัดรูปแบบรหัสหลายบรรทัดที่เป็นมิตรในความคิดเห็น
BigSauce

ฉันคิดว่าคำถามที่แท้จริงเกี่ยวกับวิธีการทำสิ่งนี้โดยไม่มีวัตถุที่เปลี่ยนแปลงไม่ได้ระดับกลาง ประโยชน์หลักสำหรับสิ่งนั้น (ซึ่งมีอยู่สำหรับ NSString เป็นต้น) คือการร้อยด้ายให้ปลอดภัย
Motti Shneor

14

ใช้ NSMutableDictionary addEntriesFromDictionary เพื่อเพิ่มพจนานุกรมทั้งสองลงในพจนานุกรมที่เปลี่ยนแปลงได้ใหม่ จากนั้นคุณสามารถสร้าง NSDictionary จากตัวแปรที่เปลี่ยนแปลงได้ แต่โดยปกติแล้วไม่จำเป็นที่จะต้องมีพจนานุกรมที่ไม่แปรผัน


0

NSDictionary ของคุณเต็มไปด้วย NSDictionaries อื่น ๆ หรือไม่? ดูเหมือนว่าคุณจะต้องมี NSMutableArray ที่คุณสามารถเพิ่ม NSDictionaries ได้ในตอนท้าย สมมติว่าคุณสามารถควบคุมการไหลของข้อมูลที่เข้ามาและจะไม่เสี่ยงต่อการซ้ำซ้อนในอาร์เรย์ของคุณคุณสามารถต่อท้ายข้อมูลได้อย่างแน่นอน

NSMutableArray *array = [[NSMutableArray alloc] init];
arrayCount = [array count]; // check the item count
[array addObject:dictToAppend];

หากไม่ได้ดูว่าคุณใช้งานอย่างไรฉันไม่สามารถให้ตัวอย่างโค้ดโดยละเอียดเพิ่มเติมได้ การต่อท้ายไอเท็มนั้นทำได้ง่าย แต่รู้ว่าสามารถทำได้ด้วย Arrays หรือ Dictionaries เวอร์ชันที่ไม่แน่นอน หวังว่านี่จะช่วยได้เล็กน้อย

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.