سؤال

واحد سريع. أنا تطل على شيء ...

ولدي وجهة نظر الجدول مجمعة التي يتم إنشاؤها من صفائف في NSDictionary. كل مجموعة هي جزء من الجدول. عندما تكون في وضع التحرير وينقر المستخدم "حذف" أدعو

- (void)removeObject:(MyClass *)myObject 

وكيف يمكنني تحديد مجموعة لإرسال رسالة [myArray removeObject: myObject]؟ NSDictionary ليس لديها indexOfObject: طريقة ولكن NSArray يفعل. أعتقد أنني يمكن تكرار خلال كل مجموعة تبحث عن وجوه وقال ولكن هذا لا يبدو الحق.

ويمكن للشخص حشرجة الموت ذهني من فضلك؟!؟ تشك!

هل كانت مفيدة؟

المحلول

هل يمكن تنفيذ البروتوكولات UITableView القياسية واستخدام هذا الأسلوب:

(void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle<br> forRowAtIndexPath:(NSIndexPath *)indexPath {
     <br><br>//check the section according to your array, if(indexPath.section ==....
     <br><br>
    if(editingStyle == UITableViewCellEditingStyleDelete) {
     <br>
    [arrayFoundBefore removeObjectAtIndex:indexPath.row];
    <br> 
    }
    <br>}

وأنا أعتقد أن هذا هو السبيل لتحقيق ذلك، ولست متأكدا بالرغم من ذلك. يمكن لأي شخص أن توضح؟

نصائح أخرى

ويجب عليك ان تعرف الذي أرسلت tableView الرسالة (لأن الأسلوب في السؤال هو في مندوب لذلك الكائن) - وبالتالي يمكنك إما إنشاء مجموعة في طريقة viewDidLoad في مندوب tableView، أو بدلا من ذلك معرفة أي واحد ويستند على السياق مندوب.

وأنا لا أرى بأسا من الواضح مع بالتكرار عبر صفائف. عدد مرات الناس حذف الأشياء، وهي القواميس كبيرة حقا بما يكفي لجعل هذا فوق هام؟

وكنقطة مرجعية، طريقة indexOfObject: NSArray من لا يفعل شيئا مربي الحيوانات من تكرار الرغم من أن مجموعة تبحث عن كائن مطابقة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top