/ /小石の時間の色の設定 - c、小石 - 時計、小石 - sdk、雲粒

小石の時間の色の構成 - c、小石 - 時計、小石 - sdk、雲粒

私は自分の小石の時計の設定を最適化しようとしています。文字列の比較を避けるために、すべてのGColor値を配列に格納しますが、それはまったく機能しません。

配列:

static uint8_t colors[] = {
GColorInchwormARGB8,    //1
GColorSpringBudARGB8,    //2
GColorBrightGreenARGB8,    //3
GColorMintGreenARGB8,    //4
GColorScreaminGreenARGB8,    //5
GColorGreenARGB8,    //6
GColorMalachiteARGB8,    //7
};

configからデータを読み込みます。

static void in_recv_handler(DictionaryIterator *iterator, void *context)
{

Tuple *t = dict_read_first(iterator);

while (t != NULL){
switch (t -> key){
//++++++ background color +++++++
case bgColor:
persist_write_int(bgColor, t->value->int8);
break;
//++++++ time color ++++++
case timeColor:
persist_write_int(timeColor, t->value->int8);
break;
}
t = dict_read_next(iterator);
}
}

私はuint8、uint16、uint32、int8、int16、int32を試しました。 int32を使用すると時計がクラッシュします。

レイヤーに色を設定する:

time_color = (GColor)colors[persist_read_int(timeColor)];

私が使うとき:

time_color = (GColor)colors[4];

正しい色が表示されます。

htmlページの値:

 <select id="bg_select">
<option class="inchworm" value="0">Inchworm</option>
<option class="springBud" value="1">Spring Bud</option>
<option class="brightGreen" value="2">Bright Green</option>
<option class="mintGreen" value="3">Mint Green</option>
</select>

誰もそれを修正するための提案を持っていますか?何が悪いですか?

回答:

回答№1は1

イベントの正確な順序に応じて、色の値がまだ保存されていない可能性があります。あなたは値が存在するかどうかチェックしていますか?

if(persist_exists(timeColor)) {
time_color = (GColor)colors[persist_read_int(timeColor)];
}