在 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];
我有一个特定的场景,当订单列表 (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];