আইওএস ব্যবহার করে কীভাবে জিইউইডি / ইউইউডি তৈরি করবেন


207

আমি আইফোন এবং আইপ্যাডে একটি গিউডি / ইউইউডি তৈরি করতে সক্ষম হতে চাই।

উদ্দেশ্যটি হ'ল সমস্ত অনন্যতার সাথে বিতরণ করা ডেটার জন্য কী তৈরি করতে সক্ষম হোন। আইওএস এসডিকে দিয়ে এটি করার কোনও উপায় আছে কি?


3
আপনি যে জেনারেটেড ইউআইডি কখনই হারাবেন না তা নিশ্চিত করার বিষয়ে একটি নিবন্ধ আছে, এমনকি আইওএস 5 এর জন্য এবং পরে কীচেন ব্যবহার করে। blog.onliquid.com/…
jasoares

উত্তর:


323
[[UIDevice currentDevice] uniqueIdentifier]

আপনার আইফোনের অনন্য আইডি প্রদান করে।

সম্পাদনা: -[UIDevice uniqueIdentifier]এখন হ্রাস করা হয়েছে এবং অ্যাপ স্টোর থেকে এটি ব্যবহারের জন্য প্রত্যাখ্যান করা হচ্ছে। নীচের পদ্ধতিটি এখন পছন্দসই পদ্ধতি।

আপনার যদি বেশ কয়েকটি ইউআইডি তৈরি করতে হয় তবে কেবল এই পদ্ধতিটি ব্যবহার করুন (এআরসি সহ):

+ (NSString *)GetUUID
{
  CFUUIDRef theUUID = CFUUIDCreate(NULL);
  CFStringRef string = CFUUIDCreateString(NULL, theUUID);
  CFRelease(theUUID);
  return (__bridge NSString *)string;
}

সম্পাদনা: জানুয়ারী, 29, 2014: আপনি যদি 6 বা তার বেশি আইওএসকে টার্গেট করে থাকেন তবে এখন আপনি আরও সহজ পদ্ধতিটি ব্যবহার করতে পারেন:

NSString *UUID = [[NSUUID UUID] UUIDString];

21
[[ইউআইডিভাইস কারেন্ট ডিভাইস] অনন্য আইডেন্টিফায়ার] আইওএস 5 হিসাবে অবহেলা করা হয়েছে এবং অ্যাপল এখন অ্যাপ্লিকেশনগুলি এটি প্রত্যাখ্যান করছে (মার্চ ২০১২ পর্যন্ত)। প্রতিক্রিয়া বাকি এখনও সঠিক।
গর্মে

13
এই প্রশ্নটি প্রায় সময় ধরে থাকার পরেও, আমি নিশ্চিত যে মূল প্রশ্নটি ডিভাইসের অনন্য শনাক্তকারী সম্পর্কে নয়, তবে কোনও কিছুর জন্য কেবল একটি দরকারী সাধারণ অনন্য শনাক্তকারী সম্পর্কে getting
রায়ান ম্যাককুইগ

12
এই আরসিটিকে অনুগত করতে আপনাকে অবশ্যই স্ট্রিং অবজেক্টটি কাস্ট করতে হবে এবং স্বতঃস্ফূর্ত কলটি সরিয়ে ফেলতে হবে। অন্য কথায় কাস্ট যুক্ত করুন: এনএসএসটিং * স্ট্রিং = (__ব্রীজ_আর ট্রান্সফার এনএসএসটিং *) সিএফইউইউইডক্রিয়েটস্ট্রিং (ন্যুআলএল, দ্য ইউইউইডি);
পল ডি ল্যাঞ্জ

65
আইওএস 6 এর মতো আপনি ব্যবহার করতে পারেন: এনএসএসআর্টিং * ইউইউডিউ = [[এনএসইউইউডিউ ইউইউডি] ইউইউডিস্ট্রিং];
প্রতিসম

1
যদি আমি [[এনএসইউইউড ইউইউইডি] ইউইউডিস্ট্রিং] ব্যবহার করি; আইওএস 7 এবং এর উপরে, অ্যাপ্লিকেশন দ্বারা আমার অ্যাপ্লিকেশন প্রত্যাখাত হবে না?
হোয়ামি

100

এখানে আমি যে সাধারণ কোডটি ব্যবহার করছি তা এআরসি এর সাথে সঙ্গতিপূর্ণ।

+(NSString *)getUUID
{
    CFUUIDRef newUniqueId = CFUUIDCreate(kCFAllocatorDefault);
    NSString * uuidString = (__bridge_transfer NSString*)CFUUIDCreateString(kCFAllocatorDefault, newUniqueId);
    CFRelease(newUniqueId);

    return uuidString;
}

35
সত্যিই এটি গ্রহণযোগ্য উত্তর হওয়া উচিত, আসল প্রশ্নটি একজন জিইউইডি বা ইউইউডি জেনারেটরের জন্য জিজ্ঞাসা করেছিল, এবং প্রত্যেকে কীভাবে ফোনের ইউডিআইডি প্রাপ্ত তা নিয়ে প্রতিক্রিয়া জানায়। একটি ইউনিভার্সাল ইউনিক আইডেন্টিফায়ার (ইউইউডি) এবং ইউনিক ডিভাইস আইডেন্টিফায়ার (ইউডিআইডি) একই জিনিস নয়।
জো

1
এখানে একটি সরল রেখা রয়েছে একটি এনএসএসস্ট্রিং * ইউউইউড = [[এনএসইউইউডি ইউইউডি] ইউইউডিস্ট্রিং];
আদিল

89

আইওএস 6 এ আপনি সহজেই ব্যবহার করতে পারেন:

NSUUID  *UUID = [NSUUID UUID];
NSString* stringUUID = [UUID UUIDString];

অ্যাপলের ডকুমেন্টেশনগুলিতে আরও বিশদ


5
এটি এখন পর্যন্ত সবচেয়ে সহজ সমাধান। আপনার যদি আইওএস 6 এর আগে সমর্থন না করতে হয় তবে এটি ব্যবহার করুন। আমি স্থায়ী আইডি উত্পন্ন কোর ডেটা ব্যবহার করছিলাম তবে এটি আরও ভাল। +1
শান

পারফেক্ট, এর জন্য আপনাকে ধন্যবাদ! দিনের জন্য এটি আমার +1 উত্তর :)
justinhartman

আমি যখনই সিমুলেটারে অ্যাপ চালনা করি তখনই এটি পরিবর্তন হয়।
গজেন্দ্র কে চৌহান

46

অ্যাপল বিকাশকারী ডকুমেন্টেশন পর্যালোচনা করে আমি দেখতে পেলাম যে সিএফইউইউআইডিটি অবজেক্টটি আইফোন ওএস ২.০ এবং পরে পাওয়া যায়।



22

সহজ কৌশলটি ব্যবহার করা হয় NSString *uuid = [[NSProcessInfo processInfo] globallyUniqueString]। দেখুন NSProcessInfo বর্গ রেফারেন্স।


8
এটি প্রক্রিয়াটির জন্য একটি অনন্য শনাক্তকারীকে ফেরত দেয়। এটির কোনও জিইউইডির সাথে সাদৃশ্য নেই। দস্তাবেজগুলি থেকে: "আইডিতে হোস্টের নাম, প্রসেস আইডি এবং একটি টাইম স্ট্যাম্প অন্তর্ভুক্ত থাকে যা নিশ্চিত করে যে আইডিটি নেটওয়ার্কের জন্য অনন্য is"
ম্যাট স্প্রেডলি

আপনি সঠিক হতে পারে। এটি একটি বাস্তববাদী ওয়ান-লাইনার এবং সম্ভবত সিএফইউইউইডের মতো বুলেটপ্রুফ নয়। যার বেশি বৃহত্তর কঠোরতার প্রয়োজন তাকে অবশ্যই কোরফাউন্ডেশনে নেমে যেতে হবে।
রায়ান ম্যাককুইগ


7

আমি ওবিজেসি-র জন্য একটি গাইড নির্দেশিকা শ্রেণীর আমার সহজ তবে দ্রুত প্রয়োগটি এখানে আপলোড করেছি: আপত্তি -সি জিইউইডি

Guid* guid = [Guid randomGuid];
NSLog("%@", guid.description);

এটি পাশাপাশি বিভিন্ন স্ট্রিং ফর্ম্যাটগুলিতে এবং পার্স করতে পারে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.