Cfstringref устанавливает значение для "" "
Вопрос
У меня есть переменная, которая является CFStringRef, и я выполняю проверку, чтобы убедиться, что это не 1 конкретное значение.Если это тогда, я хочу установить его в эквивалент NSString of @ ""
Вот код
CFStringRef data = = CFDictionaryGetValue(dict, kABPersonAddressStateKey);
NSComparisonResult result = [(NSString *)data compare:element options:compareOptions];
if(NSOrderedAscending == result) {
// Do something here...
}
else if (NSOrderedSame == result) {
// Do another thing here if they match...
data = "";
}
else {
// Try something else...
}
.
Так что в блоке, если я хочу установить его на «», но XCODE предупреждает меня, что это неверный тип указателя.
Решение
cfstringref - неизмеренный объект, поэтому вы должны создать новый экземпляр с другим значением:
data = CFStringCreateWithCString (NULL, "", kCFStringEncodingUTF8);
.
и помните, что вам нужно выпустить это значение.
Но поскольку типы CfStringRef и NSStrings Bridged не могут просто использовать NSString в своем коде (что, вероятно, облегчает понять и поддерживать его позже):
NSString *data = (NSString*)CFDictionaryGetValue(dict, kABPersonAddressStateKey);
NSComparisonResult result = [(NSString *)data compare:element options:compareOptions];
if(NSOrderedAscending == result) {
// Do something here...
}
else if (NSOrderedSame == result) {
// Do another thing here if they match...
data = @"";
}
else {
// Try something else...
}
. Не связан с StackOverflow