এনএসএসটিং: ইস্কুয়াল বনাম। ইস্কুয়ালটোস্ট্রিং


94

isEqual:এবং মধ্যে পার্থক্য কিisEqualToString: ?

ক্লাসগুলি কেবল ওভাররাইডের পরিবর্তে কেন ইস্কেলটো * পদ্ধতিগুলি (এনএসআরির জন্য ইস্কলটিওআরএ, ইস্কুয়ালটোডাটা, ...) যুক্ত করছে isEqual:?

উত্তর:


103

isEqual:একটি স্ট্রিংকে একটি অবজেক্টের সাথে তুলনা করে এবং NOবস্তুটি স্ট্রিং না হলে ফিরে আসবে । isEqualToString:যদি আপনি জানেন যে উভয় বস্তু স্ট্রিং, যেমন ডকুমেন্টেশনে বলা হয়েছে:

বিশেষ বিবেচ্য বিষয়

যখন আপনি জানেন যে উভয় বস্তু স্ট্রিং, তখন এই পদ্ধতির তুলনায় সমতা যাচাই করার একটি দ্রুত উপায় isEqual:

isEqualTo<Class>সাম্যতার জন্য নির্দিষ্ট চেক সরবরাহ করতে ব্যবহৃত হয়। এই ক্ষেত্রে; isEqualToArray:অ্যারেগুলিতে সমান সংখ্যক অবজেক্ট রয়েছে এবং এটি একটি নির্দিষ্ট সূচীতে বস্তুগুলি পরীক্ষার YESজন্য ফিরে আসে তা isEqual:পরীক্ষা করে।


4
যদি আপনি অ্যারন হিলগাসকে বিশ্বাস করেন তবে পারফরম্যান্সের কোনও পার্থক্য নেই, কেবলমাত্র কিছুটা ধরণের সাফাই
Caro

4
লিঙ্কটির জন্য ধন্যবাদ - দরকারী যদিও আপনি আমাদের মার্ক
ড্যারিম্পলকে


16

এছাড়াও, আপনার নিজস্ব -isEqual:এবং -isEqualTo<Class>:পদ্ধতিগুলি লেখার জন্য , কনভেনশনটি শূন্য তর্কগুলির পক্ষে শূন্য তর্ক করার অনুমতি দেয় -isEqual:এবং-isEqualTo<Class>:


4
আমি এর আগে এসেছি নি, এমন কোনও ডকুমেন্টেশন যা আপনি জানেন?
মাইক আবদুল্লাহ

4
এটি ইক্যুয়ালটোস্ট্রিংয়ের ক্ষেত্রে সত্য বলে মনে হচ্ছে না, আপনি যদি শূন্য না হয়ে থাকেন তবে কেবল কোনও ফেরত দেয় না।
জাকা জানার

9
আকর্ষণীয়, এটি <a href=" বিকাশকারী। অ্যাপ্লিকেশন
জোনাথন ড্যান

এটা সত্য নয়। isEqualToString একটি ব্যতিক্রম বাড়ায় না।
শ্রদ্ধাবাদ কোড

4
কোকো ফান্ডামেন্টাল গাইড ওয়েব পৃষ্ঠা বলছে, "এই দস্তাবেজটি বর্তমান বিকাশের জন্য সেরা অনুশীলনের প্রতিনিধিত্ব করতে পারে না।" এটা পুরানো, স্পষ্টতই।
cbh2000

5

আমার অনুমান যে এটি একটি সামান্য পারফরম্যান্স বর্ধন সরবরাহ করে, যেমন এক্যুয়ালটোস্ট্রিং: কী পাস হয়েছে তা টাইপ-চেক করতে হবে না।


আপনার অনুমান সম্ভবত সত্য: :)
ফিলিপ 007

5

@ অ্যাবিজার্ন এবং @ জোনাথন ড্যানের উত্তরগুলিতে প্রসারিত, উভয়ই মূল্যবোধ isEqualনিয়ে isEqualToStringকাজ করে nil

- (void)testStringEqual {
    NSString *string = nil;

    STAssertFalse([string isEqual:@"test"], @"NSString isEqual");
    STAssertFalse([string isEqualToString:@"test"], @"NSString isEqualToString");

    // Note that these both return NO
    STAssertFalse([string isEqual:nil], @"NSString isEqual");
    STAssertFalse([string isEqualToString:nil], @"NSString isEqualToString");

    string = @"test";

    STAssertTrue([string isEqual:@"test"], @"NSString isEqual");
    STAssertTrue([string isEqualToString:@"test"], @"NSString isEqualToString");

    STAssertFalse([string isEqual:nil], @"NSString isEqual");
    STAssertFalse([string isEqualToString:nil], @"NSString isEqualToString");
}

4

আমি অত্যন্ত সুপারিশ এই । ইক্যুয়েলটোস্ট্রিংয়ের পারফরম্যান্স সুবিধাগুলি মূলত বেশিরভাগ অ্যাপ্লিকেশনের জন্য নগণ্য। তবে লেখক উল্লেখ করেছেন আরও দুটি ভিন্নতা:

  • সুরক্ষা টাইপ করুন
  • উপায় nilহ্যান্ডলড হয়

দুজন যেভাবে নীলকে পরিচালনা করছে তাতে আমি কোনও পার্থক্য দেখছি না। গ্রাহক বা যুক্তি বা উভয়ই হোন না।
সৈয়দহুসাইন

যা কিছু "এটি" আর বিদ্যমান নেই: /
জ্যারেড গ্রুব

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