2010-08-20 2 views
1

Я взял (с разрешения авторов на сайте) класс-оболочку для записи запросов на выборку в мой стек Core Data.необязательные параметры

Парень, который написал это, говорит, что имеет «необязательные параметры», и я подумал, что это значит.

Anywho, статические методы записываются как таковые ...

+(NSMutableArray *) searchObjectsFromContext 
    : (NSString*) entityName 
    : (NSPredicate*) predicate 
    : (NSString*) sortKey 
    : (BOOL) sortAscending 
    : (NSManagedObjectContext *) managedObjectContext 

Я бежал его и передавая «ноль» в ненужный Params. Это правильная вещь?

Кроме того, есть ли смысл в том, что между двоеточиями нет дополнительного текста метода?

Спасибо за любую помощь

Оливер

ответ

3

Нельзя сказать, что если «ноль» - это правильная вещь, которую нужно делать, не читая документацию или не изучая исходный код. Это, вероятно, правильно, хотя это стандартное поведение в большинстве классов.

Создание параметров метода без связанного текста (как вы видите в вашем опубликованном коде) совершенно легально ... но это также совершенно уродливо, и вы теряете все преимущества многословия Obj-C. Нет абсолютно никакой причины писать такой код, это только помогает сделать ваши классы более сложными в использовании.

+0

Cool! Благодаря! Я думал, что это может быть просто лень, но не был уверен, было ли значение, о котором я не знал. – Fogmeister

+0

Не могу согласиться с @kubi больше. По мере того как вы углубляетесь в Objective-C, вы найдете такие методы, как прямое наступление. Кроме того, этот метод действительно не принесет вам страшной суммы. И, наконец, тот факт, что он возвращает «NSMutableArray» из выборки Core Data, просто ... *** очень очень *** неправильно. На каком сайте это произошло? Я бы хотел посмотреть на исходный источник. –

+0

Я согласен с тем, что тот, кто изначально написал этот метод, имеет некоторые серьезные опасные привычки. Я бы не стал использовать код, который я не понял, который пришел с этого сайта. – TechZen

0

Дополнительные параметры доступны в VB (и некоторых других языках), но не C#. C# заставляет вас перегружать функции.

Вы можете передать значения по умолчанию для необязательных параметров, если хотите. Пока вы знаете, как функция ответит, я не вижу, как это повредит что-либо.

EDIT: Я только что прочитал ваш тег iphone .... извините! Я не знаю, насколько уместен мой ответ вам в этом отношении.

+0

Thanks, Функции внутри обертки имеют дело с различными переменными в зависимости от того, имеют ли они значение. Я просто не был уверен в терминах «необязательные переменные». Я предполагаю, что он просто означает, что вы можете передавать нуль вместо фактических значений. Спасибо! – Fogmeister

+0

Не волнуйтесь, я думаю, что это тот же ответ. Я бы поставил вопрос, что это для iPhone в заголовке/сообщении. Thanks – Fogmeister

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