แทรกวัตถุ 12 รายการลงใน NSMutableArray

ฉันต้องการเพิ่มวัตถุ 12 ชิ้นใน nsmutablearray พร้อมสำหรับคำสั่ง InsertObject:atIndex:

มันต้องมีวิธีที่เร็วกว่านี้แน่ๆ

    [self.YoutubeArray addObject:@""];
    [self.YoutubeArray addObject:@""];
    [self.YoutubeArray addObject:@""];
    [self.YoutubeArray addObject:@""];
    [self.YoutubeArray addObject:@""];
    [self.YoutubeArray addObject:@""];
    [self.YoutubeArray addObject:@""];
    [self.YoutubeArray addObject:@""];
    [self.YoutubeArray addObject:@""];
    [self.YoutubeArray addObject:@""];
    [self.YoutubeArray addObject:@""];
    [self.YoutubeArray addObject:@""];

person user393273    schedule 28.03.2011    source แหล่งที่มา
comment
กรุณาค้นหา SO ก่อนโพสต์คำถาม ตรวจสอบลิงก์ที่เกี่ยวข้องทางด้านขวาของหน้านี้   -  person Evan Mulawski    schedule 28.03.2011
comment
ใช่แล้ว ฉันไม่อยากทำแบบนี้ 12 ครั้ง [self.YoutubeArray addObject:@];   -  person user393273    schedule 28.03.2011
comment
@ user393273: มีบางสิ่งที่เรียกว่า for loop ซึ่งจะทำสิ่งที่คุณต้องการหรือแม้แต่ addObjects: ตรวจสอบเอกสาร iOS   -  person Evan Mulawski    schedule 28.03.2011
comment
@Evan นี่เป็นคำถามซ้ำซ้อนหรือเปล่า?   -  person taskinoor    schedule 28.03.2011
comment
@taskinoor: stackoverflow.com/questions/949244/, แต่การใช้เอกสารประกอบจะทำให้คำถามนี้ไร้ประโยชน์   -  person Evan Mulawski    schedule 28.03.2011
comment
แม้ว่าฉันจะตอบคำถามแล้ว แต่ฉันยอมรับว่าการตรวจสอบไวยากรณ์ภาษาพื้นฐานจะช่วยแก้ปัญหานี้ได้   -  person taskinoor    schedule 28.03.2011


คำตอบ (3)


self.YoutubeArray = [NSMutableArray arrayWithObjects:@"",@"",...,@"",nil];

หากคุณใช้ข้อมูลคงที่

person Seega    schedule 28.03.2011

ฉันเดาว่าคุณไม่ต้องการสตริงว่างเหล่านั้นจริงๆ คุณแค่ตั้งค่าตัวยึดตำแหน่งใช่ไหม

If so:

self.YoutubeArray = [NSMutableArray arrayWithCapacity:12];

มิฉะนั้น:

self.YoutubeArray = [NSMutableArray arrayWithObjects:@"", @"", @"", @"", @"",
                     @"", @"", @"", @"", @"", @"", @"", nil];
person Dan Ray    schedule 28.03.2011
comment
ฉันคิดว่าชื่อของ arrayWithCapacity: นั้นทำให้เข้าใจผิดเล็กน้อย เนื่องจากไม่ได้เพิ่มวัตถุตัวยึดตำแหน่งลงในอาร์เรย์ เพียงแต่สำรองหน่วยความจำไว้เพียงพอ ดังนั้นพอยน์เตอร์ไปยังออบเจ็กต์ที่คุณเพิ่มด้วยตนเองจะถูกบันทึกไว้ในหน่วยความจำต่อเนื่อง - person Matthias Bauch; 28.03.2011
comment
@MatthiasBauch ฉันเห็นด้วยกับคุณ - person Fisher; 03.09.2012

person    schedule
comment
เราจะโหวตโซลูชันที่นำไปสู่ ​​NSInvalidArgumentException ตั้งแต่เมื่อใด arrayWithObjects:count: สามารถใช้เพื่อแปลง c-arrays เป็น NSArrays เท่านั้น - person Matthias Bauch; 28.03.2011
comment
ขอบคุณที่ชี้ให้เห็นว่า ความผิดฉันเอง. ไม่ได้อ่านเอกสารวิธีการจนจบ ขออภัยที่วุ่นวาย ) - person Eimantas; 28.03.2011