Я хотел бы, чтобы определенная строка в определенном файле была скрыта каждый раз, когда я передаю изменения в том файле.
На самом деле у меня есть URL в файле, который не должен быть общедоступным в удаленном репозитории. Там должен так или иначе скрыть его с помощью предварительной фиксации и рычагов постфиксации или чего-то подобного?
В настоящее время я работаю с репозиторием мерзавца, но было бы хорошо знать, как сделать это с svn.
Спасибо, Simão
При использовании оператора = =
выполняется сравнение значений указателей. Это будет работать только в том случае, если сравниваемые объекты являются точно такими же объектами по одному и тому же адресу памяти. Например, этот код возвращает Эти объекты отличаются
, поскольку, несмотря на то, что строки одинаковы, они хранятся в разных местах памяти:
NSString* foo = @"Foo";
NSString* bar = [NSString stringWithFormat:@"%@",foo];
if(foo == bar)
NSLog(@"These objects are the same");
else
NSLog(@"These objects are different");
При сравнении строк обычно требуется сравнить текстовое содержимое строк, а не их указатели, поэтому следует использовать метод -isEqualToString:
NSString
Этот код возвращает Эти строки совпадают
, поскольку сравнивает значение строковых объектов, а не их значения указателей:
NSString* foo = @"Foo";
NSString* bar = [NSString stringWithFormat:@"%@",foo];
if([foo isEqualToString:bar])
NSLog(@"These strings are the same");
else
NSLog(@"These string are different");
Для сравнения произвольных объектов Objective-C следует использовать более общий метод isEqual:
NSObject
. -isEqualToString:
является оптимизированной версией -isEqual:
, которую следует использовать, когда известно, что оба объекта являются объектами NSstring
.
- (void)CheckKeyWithString:(NSString *)string
{
//foreach key in NSMutableDictionary
for(id key in dictobj)
{
//Check if key is equal to string
if([key isEqual:string])
{
//do some operation
}
}
}
-121--1884522- http://www.dotnetfunda.com/articles/article131.aspx
-121--4577857-Если этот файл действительно должен находиться под контролем версии, используйте драйвер фильтра атрибутов git (см. также книга GitPro ).
Драйвер фильтра состоит из команды
clean
и командыsmudge
, каждая из которых может быть оставлена неопределенной.
Приизвлечении
, когда задана командаsmudge
, на объект BLOB подается стандартный ввод, а его стандартный вывод используется для обновления файла рабочего дерева.
Аналогично, командаclean
используется для преобразования содержимого файла рабочего дерева при возврате.
Таким образом, сценарий ( частная версия, только в репо, не управляемая Git ), на который ссылается smudge, может заменить кодированный URL, в то время как чистый скрипт восстановит свое содержимое на кодированный URL.
Публичная версия одного и того же сценария, управляемая git и проталкиваемая везде... ничего и не скрывайте URL.
Вы можете хранить эту строку в отдельном файле (например, в файле ресурсов, если ваша среда поддерживает это) и не ставить этот файл под контроль версий.