gpt4 book ai didi

iphone - 同步访问 UITableViewDelegate 逻辑

转载 作者:行者123 更新时间:2023-11-28 17:41:48 27 4
gpt4 key购买 nike

我想问一个关于 TableView 和@synchronized 结构的问题。我必须在 didSelectRowAtIndexPath 中执行一次代码,即使用户继续点击表格单元格...

我有一张 table 用作游戏中的菜单。我想提供对 didSelectRowAtIndexPath 中实现的逻辑的同步访问。

我写了下面的代码:

//condition = YES in init code

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
@synchronized( self)
{
if( !condition)
{
NSLog(@"multiple execution is not allowed...");
return;
}
condition = NO;
...
//code
...
}
}

我在装有 ios 4.3.4 的 ipone 3gs 上对其进行了测试并且工作正常(我进行了测试并且行为符合预期)但是我的客户在安装了 ios 3.x 的 3g 上对其进行了测试,但似乎无法正常工作。

我考虑过使用 GCD(通过将代码包含在 dispatch_once() 中),但从 ios 4.x 开始支持它。

您是否知道为什么 @synchronized 在我客户的手机上不起作用?

谢谢!

最佳答案

@synchronized 这里不需要。

  • 您可以期望从主线程进行委托(delegate)调用(假设您没有调用它)。
  • dispatch_once 在这里似乎是一个不寻常的选择。如果您确定它很好,请尝试 iOS 3 的 pthread_once。这很奇怪,因为它使用可变全局状态运行。 IOW,“我只想制作一张 table ”。
  • 测试 BOOL 很快。

我猜?您的表正在被删除(查看卸载)并且可能无法在重新加载时重新创建。

关于iphone - 同步访问 UITableViewDelegate 逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7858543/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com