'我发现组合gulp-load-plugins
和UITableView
的困难的原因我决定开发一个自定义SpriteKit Framework
(提供完整的滚动系统)。一切都运行得很好但我在解决更新过程中遇到的错误时遇到了严重的问题。
我的SKTableView
按字母顺序向用户显示项目列表。由于我应该创建的棘手算法来更新此列表(在定义的位置添加一个单元格,刷新标题并向下滚动所有项目),我决定只更新数据库并重新加载列表(通过删除现有内容并重新创建它),同时向用户显示异步通知。
成功的应用程序重新加载列表一次,再次,然后经过一些随机更新...这里出现了混乱
问题
SKTableView
方法中,应用程序崩溃了EXC_BAD_ACCESS
。removeAllChildren
语句(???)或其他语句中,应用程序崩溃时出现相同的错误for
错误。调试:
jet_context::set_fragment_texture...
方法中,甚至加载SKTableView需要2分钟以上。代码
接口
init
初始化
/** Container for all the table items. */
@property (nonatomic, readonly) SKNode *nodeContainer;
填充表格
- (instancetype)init
{
if (self = [super init]) {
...
Create the style of the SKNode
...
// Container initialization
_nodeContainer = [[SKNode alloc] init];
_nodeContainer.position = CGPointZero;
_nodeContainer.zPosition = 0;
[self addChild:_nodeContainer];
// Generate the content
[self generateContent];
}
return self;
}
重新加载内容
- (void)generateContent
{
// Checks if the node exists, if it does, remove all of its children
// Note: used for the recreation of the list
if (_nodeContainer != nil)
[_nodeContainer removeAllChildren];
...
Initializes several SKSpriteNode and SKLabelNode
...
[_nodeContainer addChild:imgItem];
[_nodeContainer addChild:labelItem];
}
我真的无法弄清楚发生了什么。代码在没有逻辑的情况下在不同的行中超时崩溃。我的意思是,这是删除和重新创建项目的正确方法吗?有什么建议吗?