在 NSNotificationCenter 中的通知的 userInfo 中传递空的 NSIndexPath

Passing empty NSIndexPath in userInfo of a notification in NSNotificationCenter

我有一个特定的场景,当订单列表 (NSMutableArray) 为空时,因此所选索引 (NSIndexPath) 也应该为空(我正在使用 nil ).我正在使用 NSNotificationCenter 传递这些数据以触发应用程序其他地方 table 中的更新。

但是,我收到一个错误:

* Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '* -[__NSPlaceholderDictionary initWithObjects:forKeys:count:]: attempt to insert nil object from objects[1]'

如何通过 NSNotificationCenter 传递空索引?

NSMutableArray *filteredAndSortedOrders = [[NSMutableArray alloc] init];
NSIndexPath *selectedIndex = nil;//[NSIndexPath indexPathForRow:0 inSection:0]]//The problem with this is that it's non-empty
[[NSNotificationCenter defaultCenter] postNotificationName:NOTIFICATION_RELOAD_TABLE_AND_DATA
                                                    object:self
                                                  userInfo:@{
                                                             @"filteredAndSortedOrders":[filteredandSortedOrders copy],
                                                             @"selectedIndex":selectedIndex
                                                             }
 ];

您可以将负值传递给 NSIndexPath,并在接收端检查该值是否为负。

代码:

NSIndexPath *selectedIndex = [NSIndexPath indexPathForRow:-1 inSection:-1];