UUID(GUID)
1724 ワード
UUID(GUID)は、Cocoa Touchが提供する一意の識別を生成するメカニズムである.CFUUIDRefのタイプのオブジェクトはUUIDを表すことができ、UUIDは現在の時間、カウンタ、およびハードウェア識別子(通常はイーサネットカードのMACアドレス)などのデータ計算に基づいて生成される.
UUIDは、Objective-Cオブジェクトではなく、Core Foundation APIによって提供されるC構造である.Core Foundationは、文字列、配列オブジェクト、辞書オブジェクトなどのアプリケーションを記述するための基本的な構築を含むC言語APIです.Core Foundation「クラス」はCFを接頭辞とし、Refを接尾辞とし、例えばCFArrayRefおよびCFStringRefである.
多くのCore FoundationオブジェクトにはObjective-Cバージョン(たとえばNSStringはCFStringRefのObjective-Cバージョン)がありますが、CFUUIDRefはなく、Objective-Cとは何の関係もありません.したがってCore Foundationによって生成されるUUID文字列は、NSStringではなくCFUUIDRefのみです.
このコードはC関数CFUIDCreateとCFUIDCreateStringを呼び出し、C関数の関数名に英語の単語createが含まれている場合、呼び出し元は返されたオブジェクトを解放する責任を負う必要があります.このクラスにallocメッセージを送信する:allocメッセージを送信する側は、戻りオブジェクトを解放する責任を負います.CFRease関数を使用してCore Foundationオブジェクトを入力すると、対応するオブジェクトを解放できます.
UUIDは、Objective-Cオブジェクトではなく、Core Foundation APIによって提供されるC構造である.Core Foundationは、文字列、配列オブジェクト、辞書オブジェクトなどのアプリケーションを記述するための基本的な構築を含むC言語APIです.Core Foundation「クラス」はCFを接頭辞とし、Refを接尾辞とし、例えばCFArrayRefおよびCFStringRefである.
多くのCore FoundationオブジェクトにはObjective-Cバージョン(たとえばNSStringはCFStringRefのObjective-Cバージョン)がありますが、CFUUIDRefはなく、Objective-Cとは何の関係もありません.したがってCore Foundationによって生成されるUUID文字列は、NSStringではなくCFUUIDRefのみです.
// CFUUID ,
CFUUIDRef newUniqueID = CFUUIDCreate(kCFAllocatorDefault);
// CFUUID
CFStringRef newUniqueIDString = CFUUIDCreateString(kCFAllocatorDefault, newUniqueID);
// Possession imageKey
[possession setImageKey:(NSString *) newUniqueIDString];
// , "Create", release
CFRelease(newUniqueIDString);
CFRelease(newUniqueID);
このコードはC関数CFUIDCreateとCFUIDCreateStringを呼び出し、C関数の関数名に英語の単語createが含まれている場合、呼び出し元は返されたオブジェクトを解放する責任を負う必要があります.このクラスにallocメッセージを送信する:allocメッセージを送信する側は、戻りオブジェクトを解放する責任を負います.CFRease関数を使用してCore Foundationオブジェクトを入力すると、対応するオブジェクトを解放できます.