我在单例类A中定义了一个类B作为属性,在B中定义了一个字段默认不赋值(为null),在另一脚本C中调用B中方法给字段赋值,随后执行C的委托方法,委托方法中通过单例A获取B中的字段,此时为空。
脚本C中部分代码
public void Init()
{
CllLuaTool.Instance().OutfitPanelData.GetUserDressData( () => {OnAddHead();});
}
public void OnAddHead()
{
print(CllLuaTool.Instance().OutfitPanelData.data);
}
类A
public class CllLuaTool : Singleton<CllLuaTool>
{
//换装面板数据
private Cll.OutfitPanelData outfitPanelData;
public Cll.OutfitPanelData OutfitPanelData
{
get
{
if (outfitPanelData != null)
{
return outfitPanelData;
}
else
{
return new Cll.OutfitPanelData();
}
}
}
}
类B中部分方法
public class OutfitPanelData
{
List<int> data = null;
public List<OutfitRowData> GetUserDressData()
{
data = new List<int> { 1 };
return null;
}
}
不知道是不是我单例有问题,是不是不该这样把B酱紫定义成属性啊?
.....查看下你的return值。
获取data值之前应该先赋值,而且你的GetUserDressDta返回null是什么逻辑呢?