2010-08-21 6 views
1

У меня есть простой массив объектов ..Итерация через массив объектов и добавление значений в Objective-C

NSEnumerator * enumerator = [someArray.childItems objectEnumerator]; 
ChildItem* childItem; 
while(childItem = [enumerator nextObject]) 
{ 
     someArray.total = someArray.total + childItem.SomeAverage; 
} 

someArray.total с плавающей точкой, так childItem.SomeAverage. Когда я пытаюсь скомпилировать, я получаю:

недействительных операндов бинарные + (у «поплавок *» и «*» с плавающей точкой)

Что это значит? Заранее спасибо

+0

просто быть ясно, вы можете разместить объявление о childItems – ennuikiller

ответ

0

Это означает, что ваши аргументы равны float *, а не float, и вы не можете добавлять указатели вместе. :) (Однако вы можете вычесть указатели, но это другое обсуждение, если вы не хотите в него входить.) Вы не показывали объявления так сложно сказать больше.

P.S. Вам не нужно использовать этот синтаксис перечислителя в «современном» Obj-C (2.0). Вы можете написать:

for (ChildItem * childItem in someArray.childItems) { 
    ... 
} 
+0

я думаю, что вы имеете в виду ObjC 2,0 (современный может ввести в заблуждение, потому что он, как правило, со ссылкой на время выполнения, и вы можете использовать ObjC 2.0 на современные и устаревшие временные ряды). Также вам нужно использовать ключевое слово «для» здесь, а не во время. –

+0

исправлена ​​опечатка, спасибо. –

Смежные вопросы