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

时间:2018-06-15 08:21:38

标签: ios objective-c nsnotificationcenter nsindexpath userinfo

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

但是,我收到一个错误:

  

*由于未捕获的异常'NSInvalidArgumentException'而终止应用,原因:'* - [__ NSPlaceholderDictionary   initWithObjects:forKeys:count:]:尝试从中插入nil对象   对象[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
                                                             }
 ];

1 个答案:

答案 0 :(得分:2)

您可以使用负值传递NSIndexPath,并在接收方检查该值是否为负值。

<强>代码:

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