2012-01-27 1 views
2

В настоящее время я делаю много звонков в базу данных SQL для получения сумм данных, однако данные уже находятся в NSArray, поэтому я предпочел бы делать мои вычисления вместо этого. настоящее время я использую этот запрос в базе данных SQL:Операторы SQL Sum и If/Case в NSArray

SELECT MAX(pk), pk, CASE WHEN result IS NULL THEN BFNeeded ELSE CFNeeded END AS Carry, 
CASE WHEN result IS NULL THEN 1 ELSE 0 END AS Settle FROM table1; 

У меня есть пользовательский объект, который имеет несколько NSStrings такие же, как таблицы SQL (рк, BFNeeded, CFNeeded и т.д ..) и у меня есть несколько таких объектов в NSArray.

Как выполнить описанный выше запрос в массиве? Есть ли способ выполнить SQL-запросы, подобные описанным выше, или мне нужно использовать совершенно другой подход к CASE?

Благодаря

ответ

1

Заканчивать Key Value Coding операторы, которые могут вместить тип операций на массиве, что вы ищете:

http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/KeyValueCoding/Articles/CollectionOperators.html#

Вы можете обратиться к фильтрации или предиката вашего массива, например, вы можете перебирать массив с блоком или получать подмножество объектов, удовлетворяющих определенным критериям, или передавать тест, например: NSArray * filterArray = [myArray filterArrayUsingPredicate: myPredicate];

Затем используйте оператор KVC для расчета на результирующем наборе.

+0

Не было никакой операции, но это помогло мне найти решение. Спасибо – Darren

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