BOOLを含むNSMutableArrayがあります。次のように私はその配列ウォークスルーNSMutableArrayのBOOLが間違った答えを返します
addObject:@[@YES, sectionInfo.header, myFeedSource.header
:要素が経由して追加され
for (int i=0; i<revealController.headersSelected.count; i++) {
isActive = [revealController.headersSelected[i][0] boolValue];
MLog(@"Active %@",revealController.headersSelected[i][0]);
MLog(@"class %@",[revealController.headersSelected[i][0] class]);
MLog(@"converted %d",[revealController.headersSelected[i][0] boolValue]);
if (isActive) {
MLog(@"Yes");
}else {
MLog(@"No");
}
if (revealController.headersSelected[i][0]) {
MLog(@"Yes");
}else {
MLog(@"No");
}
if (revealController.headersSelected[i][0]>0) {
MLog(@"Yes");
}else {
MLog(@"No");
}
出力は次のようになります。
Active 0
class __NSCFBoolean
converted 0
No
Yes
Yes
私はそれが正しいを見ることができる唯一の方法サブ要素の値は、次のようにvarに変換することです:
isActive = [revealController.headersSelected[i][0] boolValue];
このBOOLの
値はreplaceObjectAtIndex経由For..Nextループの内側に設定されている:
私はここで何をしないのですか?なぜBOOLの正しい値が表示されないのですか?私は、前と後に1からあなたの出力に0
これは 'うそ'ではなく、実行されている比較に基づいて正しい出力です。比較はちょっとOP *が思う/したいことをしていない* - あなたが説明した – Paulw11
公正な点、それは偽りではなく誤解を招くYESであるという印刷です – Wain