我尝试将Node添加到ListView,所以:
tmp1 = aggregate(Y~., DATA[DATA$Z == 100,], mean)
tmp2 = aggregate(Y~., DATA[DATA$Z == 50,], mean)
tmp1$X2 = tmp2$X
tmp1$Y2 = tmp2$Y
graphics.off()
ggplot(DATA, aes(x = factor(X), y = Y, fill = Z)) +
geom_boxplot(width = 0.5, outlier.shape = NA) +
geom_segment(data = tmp1,
aes(x = as.numeric(factor(X)) - 0.125, y = Y,
xend = as.numeric(factor(X2)) + 0.125, yend = Y2)) +
facet_grid(Gp ~ Fc)
但是得到了这样的错误:
CCASSERT(child-> _parent == nullptr,"已添加的孩子。无法再添加");
我需要做什么?
答案 0 :(得分:0)
这些节点是否只是克隆?如果是,您可以在每次迭代时添加相同的副本:
auto nodeToAdd = loadCcbAsNode("fileccb.ccbi").get();
listView->addChild(nodeToAdd);
for(size_t i = 1; i < 9; i++) {
listView->addChild(nodeToAdd->clone());
}
或者,或者,如果它是一次性操作,请随时加载一些实例:
for(size_t i = 1; i < 10; i++) {
listView->addChild(loadCcbAsNode("fileccb.ccbi").get());
}
答案 1 :(得分:0)
for (int i = 1; i < 100; i++)
{
NodePtr nodeToAdd = loadCcbAsNode("fileccb.ccbi");
nodeToAdd->setPosition(0,i*45); // 45-size of height my node
// need to bias
listView->addChild(nodeToAdd.get());
}
事实证明,当我创建auto nodeToAdd = loadCcbAsNode("fileccb.ccbi").get();
时,nodeToAdd有一个类型的Node,但是cocos有特殊的智能指针NodePtr,我用NodePtr类型调用它,它的指针会自动增加逆一个,而Node则不然。