Другой обходной путь, о котором я не упомянул, - это запись значения переменной в файл.
Я столкнулся с очень похожей проблемой, в которой я хотел иметь возможность выполнить последний набор тестов (вместо всех моих тестов). Мой первый план состоял в том, чтобы написать одну команду для установки переменной env TESTCASE, а затем создать другую команду, которая использовала бы ее для запуска теста. Излишне говорить, что у меня была та же самая проблема, что и у вас.
Но потом я придумал этот простой взлом:
Первая команда (testset
):
#!/bin/bash
if [ $# -eq 1 ]
then
echo $1 > ~/.TESTCASE
echo "TESTCASE has been set to: $1"
else
echo "Come again?"
fi
Вторая команда (testrun
):
#!/bin/bash
TESTCASE=$(cat ~/.TESTCASE)
drush test-run $TESTCASE
В итоге я добавил новый property day
в мой подкласс NSManagedObject
, чтобы получить отформатированную строку даты.
@property (nonatomic, readonly) NSString * day;
@property (nonatomic, retain) NSDateFormatter * dateFormatter
Синтезируйте dateFomatter. @synthesize dateFormatter;
Я инициализирую средство форматирования даты в awakeFromFetch и awakeFromInsert.
self.dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
[self.dateFormatter setDateStyle:NSDateFormatterMediumStyle];
Аксессор на день
.
- (NSString *)day {
NSDate *date = self.startDate;
return [self.dateFormatter stringFromDate:date];
}
Затем я устанавливаю путь ключа имени раздела, чтобы смотреть на день
]; вам не нужно вносить какие-либо изменения в дескрипторы сортировки.
У меня еще не было возможности покопаться в этой области SDK (я работаю с C #, поэтому материалы для iPhone - мое хобби), но из что я могу сказать, вы хотели бы использовать другой init, а именно initWithKey: ascending: selector: а для селектора вы можете передать селектор вашему методу сравнения, который будет сравнивать только год / месяц / день, игнорируя время.
Вот ссылка для справки: Документация библиотеки iPhone
Надеюсь, это поможет!