問題タブ [nsuuid]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ios - NSUUID の比較方法
2 つを比較するための最良の (最小コード、最速、最も信頼性の高い) 方法はNSUUIDs
何ですか?
次に例を示します。
ios - クラス初期化子で NSUUID を生成できません - Apple Mach-O リンカ エラー
Sprite Kit を使用して iOS ゲームを作成しています (iOS 7 以降を対象としていますgameObject
)。(カスタム クラス) を初期化するときに問題が発生しています。
ゲームの ID に UUID を設定しようとすると、ビルドが失敗します (エラー メッセージについては以下を参照してください)。メソッドの呼び出しを削除するとgetUUID
問題が解決するので、そこに問題があると確信しています。
メソッドはgetUUID
ヘルパー クラス内にあり、Prefix.pch にインポートされます (したがって、他のすべてのファイルで使用できるようにする必要があります)。
は次のhelpers.h
とおりです。
そしてhelpers.m
:
最後に、gameObject.m
外観は次のとおりです。
私が得ているエラーは次のとおりです。
SO でこのエラーについて言及されているすべての一般的な修正を確認しました。私のビルド設定アーキテクチャは として設定されてarm64 arm7 arm7s
おり、ファイルのターゲットは正しく設定されており、すべての.m
ファイルがビルドに含まれています。
私が間違っていたアイデアはありますか?私はまだ Objective-C に非常に慣れていないので、現時点では、これらすべてが暗闇の中で揺れ動くようなものです。
xcode - ユーザーが iOS デバイスにインストールした後のユニーク デバイスの追跡
ユニーク ユーザーを追跡するアプリがあります。以前は、UDID を使用してそれらを追跡しました。Apple は UDID の使用を廃止し、UDID の使用をサポートしなくなりました。
ここでの問題は、ユーザーがアプリをインストールするときに、ベンダー識別子によってユーザーの一意の ID を知ることができることです。
私たちのアプリはこのように機能します。新しいユーザーがアプリをインストールすると、ベンダー ID が生成されてサーバーに送信されます。これはそのユーザーに固有です。ただし、同じユーザーがアプリをアンインストールしてから再度インストールした場合。再度、新しいベンダー ID が生成されます。
ユーザー ID の重複を防ぐにはどうすればよいですか。これに対する代替ソリューションはありますか。
ありがとう、
objective-c - NSUUID は継承によって拡張できますか? どのように?
最近 (いくつかのコードを見直しているときに) 私たちのプログラムにバグをもたらす奇妙な点に出くわしました。
私たちが使用している API には、次の実装があります (元のコードは Objective-C にありますが、Swift で記述します)。
常に空のインスタンスを返すため、これはまったく役に立ちません。
説明のために、プレイグラウンドのコードをここに貼り付けます。
たとえば、単純な NSUUID を作成すると、次のようになります。
MyUUID の作成は似ているはずですが、
しかし、うまくいきません。
もう少し調べてみると、NSUUID イニシャ__NSConcreteUUID
ライザーがインスタンスを作成していることがわかりますが、MyUUID はそうではなく、何をしようとしても問題ありません。適切な UUID を作成しません。
それで、私の質問: NSUUID の子実装を作成することは可能ですか?
objective-c - NSManagedObjectID に代わる一意の ID としての NSUUID
NSManagedObjectID を使用していくつかの問題に遭遇し、保存された状態に応じて変化します。
そのため、ドキュメントや他の人が推奨する独自の UniqeID を使用することにしました。ここのスタック オーバーフローや、コア データ フィールドに NSUUID 文字列値を格納するだけの単純な問題である他の場所で、多くの例を見てきました。
しかし、これは私が望むものには十分ではありません。NSManagedObjectID の便利な点の 1 つは、常に同じオブジェクトであり、ポインターで比較できることです。そのため、NSManagedObjectID をオブジェクトとして使用して通知を投稿できます。エンティティに関する情報を必要とするものはすべて、NSManagedObjectID に基づいて通知に登録できます。追加のコードを記述せずに、通知が実際に探しているものかどうかを確認します。
しかし、NSManagedObjectID の代わりに NSString が渡された場合でも、それは真実でしょうか? 同じオブジェクトであっても、NSString の比較には常に isEqualTo を使用することになっています。通知用のオブジェクトとして NSString を使用するのは少しもったいない気がします。
私の場合、目的の c が舞台裏で NSString をいじらない限り、同じオブジェクトであることがほぼ保証されています。uniqueID はオブジェクトの挿入時に一度生成され、必要に応じて変更されずに渡されます。NSManagedObjectID を使用するすべての呼び出しを、最小限の変更でドロップできるものに置き換えたいだけです。
CFUUID は、ポインター値を共有することが保証されているため、理想的に見えますが、CFUuidRef は目的の c オブジェクトではないため、特に通知には使用できません。NSUUID は、同じオブジェクトであることが保証されていないというドキュメントの警告を除けば、次善のようです。しかし、私の NSUUID が単一のオブジェクトで作成、保存、取得される場合、渡される NSUUID がアプリケーション全体で同じオブジェクトであることを保証できますか? もしそうなら、NSString についても同じことが言えませんか? できたとしても、NSUUID を使用するだけでよかったと思います。
通知を使用して個別のスレッド間で情報を投稿しているため、エンティティを直接渡すことはできません。メイン スレッド上のエンティティのみを変更し、エンティティはスレッド間で読み取り専用でアクセスできますが、NSManagedObjectID のみを使用するシステムを実装すると、過去に多くの問題が解消されました。
ios9 - "[[NSUUID UUID] UUIDString]" は常に nil を返します
[[NSUUID UUID] UUIDString] が常に nil を返すという問題があります
iOS9を使用しています。この呼び出しは常に「nil」を返します。何が間違っていますか?
私は両方の方法で試しましたが、常にゼロです。
ブレークポイントが設定されたコードの情報アイコンには、次のメッセージが表示されます。