質問

私はCFStringRefである変数を持っていて、1つの特定の値ではないことを確認するためのチェックを実行します。それがそれで私はそれをnsString @ "の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...
}
.

SO ELSEブロックでは、それを「」に設定したいですが、Xcodeは無効なポインタ型であることを警告します。

役に立ちましたか?

解決

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...
}
.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top