MFHMessageDebouncer 0.1.3

MFHMessageDebouncer 0.1.3

测试已测试
Lang语言 Obj-CObjective C
许可 MIT
发布上次发布2014年12月

Matthew Holden 维护。



这是一个方法防抖的 Objective-C 实现。您可以在这里了解更多关于防抖的信息:[链接]

使用方法

您可以选择以下选项:

  1. 对对象的全部消息进行防抖,或者
  2. 对从特定调用位置产生的任意对象的所有消息进行防抖(Swift 中尚未提供)

1:

NSTimeInterval delayLength = 1.0;
NSMutableArray *myArray = [NSMutableArray array];

for (int i = 0; i < 3; i++) {
    [myArray addObject:@(i)];
}

// One second (delayLength) later, myArray will hold a single element, the number 3.
// The `addObject:` message was only sent to myArray a single time

2: (直接从单元测试中获取)

// Make three mutable arrays
NSArray *arrayInstances = @[[NSMutableArray new], [NSMutableArray new], [NSMutableArray new]];

NSTimeInterval delay = 1.0;
for (int i = 0; i < 3; i++) {
  // Debounce any message sent from this specific call site, regardless
  // of the receiver or message name
  [MFHDebouncedCallSite(arrayInstances[i], delay) addObject:@(i)];
}

// .... one second later, 
// Only the last object that was messaged will have received 'addObject:'
[arrayInstances[0] count] == 0;  //true
[arrayInstances[1] count] == 0;  //true
[arrayInstances[2] count] == 1;  //true
[arrayInstances[2] objectAtIndex:0] == @3;  //true

作者

Matthew Holden @MFHolden

许可

MFHMessageDebouncer 在 MIT 许可下提供。关于更多信息,请参阅 LICENSE 文件。