CFStringRef definição de um valor para ""
Pergunta
Eu tenho uma variável que é um CFStringRef e eu executar uma verificação para certificar-se de sua não 1 valor específico.Se for, então eu quero defini-lo para o NSString equivalente @""
Aqui está o código
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...
}
Assim, no caso de outro bloco, que eu quero defina-o para "", mas Xcode avisa-me que é um erro de tipo de ponteiro.
Solução
CFStringRef é imutável objeto, então você deve criar uma nova instância com valor diferente:
data = CFStringCreateWithCString (NULL, "", kCFStringEncodingUTF8);
E lembre-se de que você precisa para liberar o valor.
Mas desde CFStringRef e NSStrings tipos de ligação gratuita ponte, você pode apenas usar NSString no seu código (que provavelmente faz com que seja mais fácil de compreender e apoiar mais tarde):
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...
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow