我有一个CFStringRef变量,我执行检查以确保它不是1个特定值。如果是,那么我想将它设置为相当于@“”的NSString
这是代码
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...
}
所以在if else块中,我想将它设置为“”但是Xcode警告我它是一个无效的指针类型。
答案 0 :(得分:3)
CFStringRef是不可变对象,因此您必须使用不同的值创建新实例:
data = CFStringCreateWithCString (NULL, "", kCFStringEncodingUTF8);
请记住,你需要释放这个价值。
但是由于CFStringRef和NSStrings类型是免费的桥接,你可以在你的代码中使用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...
}