2012-03-21 34 views
5

Tôi là nhà phát triển ứng dụng iPhone mới bắt đầu và tôi đang cố hiển thị số nhận dạng duy nhất cho iPhone hoặc ứng dụng trên nhãn thông qua nút IBAction. Tôi đã nghiên cứu một chút và biết rằng một số mã đã bị phản đối và sử dụng CFUUID thay thế. Mã dưới đây là những gì tôi đã sử dụng. Tuy nhiên, mỗi khi tôi chạm vào nút IBAction, UUID thay đổi. Tôi đang làm gì sai?CFUUIDTạo các thay đổi UUID liên tục

CFUUIDRef udid = CFUUIDCreate(NULL); 

NSString *udidString = (NSString *) CFUUIDCreateString(NULL, udid); 

uuid.text= udidString; 

Trả lời

5

Bạn có thể sử dụng

[[UIDevice currentDevice] uniqueIdentifier] 

Tuy nhiên, phương pháp này được trích khấu hao. Để có được một mã định danh duy nhất cho mỗi thiết bị, bạn vẫn có thể sử dụng CFUUIDCreateString và lưu đầu ra thành mặc định của người dùng. Tải giá trị này mỗi khi ứng dụng chạy. Nếu ứng dụng bị xóa và sau đó cài đặt lại giá trị này sẽ khác nhau.

Nếu bạn cần số nhận dạng duy nhất trong lượt cài đặt ứng dụng, bạn có thể sử dụng địa chỉ MAC mạng.

+6

Lưu trữ nó trong keychain và nó sẽ tồn tại ứng dụng xóa/cài đặt lại :). – DougW

+0

Apple đã phá vỡ địa chỉ MAC mạng một thời gian trước đây. – LightningStryk

8

Tôi nghĩ rằng bạn đã hiểu lầm mục đích của CFUUIDCreate(), đọc nó documentation bạn sẽ hiểu.

Tôi đoán API đang phục vụ mục đích chính xác, đó là tạo mã định danh duy nhất phổ biến nghĩa là mỗi lần bạn gọi nó sẽ trả lại cho bạn số nhận dạng duy nhất một cách ngẫu nhiên.

+0

Vậy có cách nào khác để nhận số nhận dạng không đổi cho ứng dụng không? – wakaka

+1

Lưu một và làm cho nó như vậy – Sneakyness

4

Như đã đề cập ở trên, CFUUIDCreate được thiết kế để tạo UUID khác nhau mỗi khi nó được chạy. Bạn có thể tạo một và lưu trữ nó trong ứng dụng của mình nếu bạn thích hoặc bạn có thể thử một cái gì đó như https://github.com/gekitz/UIDevice-with-UniqueIdentifier-for-iOS-5 - về cơ bản, nó cung cấp một hàm UniqueGlobalDeviceIdentifier trên UIDevice, sử dụng hàm băm MD5 của địa chỉ MAC làm cơ sở của nó.

[[UIDevice currentDevice] uniqueGlobalDeviceIdentifier] 
Các vấn đề liên quan