অ্যাপলস্ক্রিপ্ট: স্ট্রিংয়ের সাথে ভেরিয়েবলের তুলনা করা ব্যর্থ


11

আমার কাছে একটি অ্যাপসক্রিপ্ট রয়েছে যা আইটেমের একটি তালিকা পায় এবং তারপরে পুনরাবৃত্তি করে:

tell application "GeekTool Helper"
    set names to name of geeklets

    repeat with currentName in names
        if (currentName is equal to "Top_CPU_Processes") then
            display dialog "found it"
        end if
        return currentName
    end repeat
end tell

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

আমি যে সমস্যাটির মধ্যে যাচ্ছি তা হ'ল if স্টেটমেন্ট। আমি কখনই সেই ডায়ালগ বক্সটি পাচ্ছি না যা প্রদর্শন করে "এটি খুঁজে পেয়েছিল"।

আমি তুলনাও চেষ্টা করেছি if (currentName = "Top_CPU_Processes") thenএবং এটি এখনও সত্য হিসাবে কখনও মূল্যায়ন করে না।

ভেরিয়েবলের বিষয়বস্তুগুলির স্ট্রিংয়ের বিপরীতে মূল্যায়ন করতে আমার কিছু করা দরকার?

উত্তর:


10

আপনার যখন ভেরিয়েবলগুলির একটি তালিকা / অ্যারে থাকে এবং আপনি সেগুলির উপরে পুনরাবৃত্তি করেন (পুনরাবৃত্তি করেন), আপনি প্রতিটি আইটেমের জন্য উল্লেখ পেয়ে যাচ্ছেন - যেমন "নামের আইটেম 1"। অন্য কথায়, আপনি সরাসরি মান পাবেন না, আপনি অ্যারেতে আইটেমটির জন্য একটি পয়েন্টার পাবেন। আইটেমের রেফারেন্সটির তুলনা করার জন্য এটির আসল মানটির জন্য আপনাকে বাধ্য করতে হবে।

চেষ্টা করুন: যদি (স্ট্রিং হিসাবে বর্তমান নাম) "শীর্ষ_সিপিইউ_প্রসেসিস" এর সমান হয়

এছাড়াও, আপনি যদি স্ক্রিপ্ট ডিবাগার ব্যবহার করছেন তবে স্ক্রিপ্টটির সাথে কী চলছে তা দেখতে অনেক সহজ, এটি অ্যাপলস্ক্রিপ সম্পাদকের চেয়ে অনেক বেশি ভাল ডিবাগের ক্ষমতা রাখে।


দুর্দান্ত, এটি উল্লেখ করার জন্য ধন্যবাদ। এছাড়াও, ভাল পয়েন্ট পুনরায়: প্রদর্শন ডায়ালগ বনাম রিটার্ন প্যানেল ব্যবহার করে। আমি বেশিরভাগই তা করছিলাম কারণ আমি ভেবেছিলাম যে আমি ফলাফল প্যানেলে ভুলভাবে মুদ্রণ করছি return "found it"কারণ এটি কখনও মুদ্রিত হয়নি। আমি ফিরে আসব return
ক্রিস স্মিটজ

এছাড়াও, রেফারেন্সকে জোর করে না দেওয়ার পরিবর্তে আপনি কেবল এটির অধ্যাপনা করতে পারেন (এর contentsসম্পত্তি জিজ্ঞাসা করুন ): contents of currentName is equal to …এএসএলজি চালু referenceবা দেখুন a reference to
ক্রিস জনসন

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