复合赋值的左边表达式是一个未初始化的值。计算值也将是垃圾
The left expression of the compound assignment is an uninitialized value. The computed value will also be garbage
当我 运行 构建我的 iOS 项目时,它抛出一个逻辑错误:复合赋值的左表达式是一个未初始化的值。计算值也将是垃圾。
这是扔在可以找到的 Yoga 包中 here。
我查看了不同的 Stack Overflow 和 Github 线程,但我找不到任何有相同问题的人。
(performLayout ? layoutMarkerData.cachedLayouts
: layoutMarkerData.cachedMeasures) += 1;
这应该不会出现此错误。
之前从未使用过 Yoga,但我从错误中得出的最佳猜测是它试图增加未初始化的内存,基于 layoutMarkerData 似乎是 Layout Data 的一个实例:
struct LayoutData {
int layouts;
int measures;
int maxMeasureCache;
int cachedLayouts;
int cachedMeasures;
int measureCallbacks;
std::array<int, static_cast<uint8_t>(LayoutPassReason::COUNT)>
measureCallbackReasonsCount;
};
cachedLayouts 和 cachedMeasures 都是没有默认值的整数,所以如果 LayoutData 是 default initialised 他们有内存中的任何值 a.k.a 垃圾。
所以我想解决方法是在您提供的行之前为它们分配一个值。
当我 运行 构建我的 iOS 项目时,它抛出一个逻辑错误:复合赋值的左表达式是一个未初始化的值。计算值也将是垃圾。
这是扔在可以找到的 Yoga 包中 here。
我查看了不同的 Stack Overflow 和 Github 线程,但我找不到任何有相同问题的人。
(performLayout ? layoutMarkerData.cachedLayouts
: layoutMarkerData.cachedMeasures) += 1;
这应该不会出现此错误。
之前从未使用过 Yoga,但我从错误中得出的最佳猜测是它试图增加未初始化的内存,基于 layoutMarkerData 似乎是 Layout Data 的一个实例:
struct LayoutData {
int layouts;
int measures;
int maxMeasureCache;
int cachedLayouts;
int cachedMeasures;
int measureCallbacks;
std::array<int, static_cast<uint8_t>(LayoutPassReason::COUNT)>
measureCallbackReasonsCount;
};
cachedLayouts 和 cachedMeasures 都是没有默认值的整数,所以如果 LayoutData 是 default initialised 他们有内存中的任何值 a.k.a 垃圾。
所以我想解决方法是在您提供的行之前为它们分配一个值。