আপনার বিভ্রান্তি হ'ল ঘোষিত সম্পত্তিগুলি (অগত্যা হিসাবে একই নামকরণ করা হয় না) (উদাহরণস্বরূপ) ভেরিয়েবল হয়।
এক্সপ্রেশন
indexPath.row
সমতুল্য
[indexPath row]
এবং অ্যাসাইনমেন্ট
delegate.myData = [myData objectAtIndex:indexPath.row];
সমতুল্য
[delegate setMyData:[myData objectAtIndex:[indexPath row]]];
সংশ্লেষিত বৈশিষ্ট্যের জন্য মানক নামকরণ অনুমান করা।
তদুপরি, delegateসম্ভবত ধরণের হিসাবে ঘোষিত হয়েছে id<SomeProtocol>, অর্থাত, সংকলক delegateসেই মুহূর্তে প্রকৃত ধরণের তথ্য সরবরাহ করতে সক্ষম হয় নি , এবং ডিবাগার সংকলন-সময় প্রদত্ত তথ্যের উপর নির্ভর করে। যেহেতু idএকটি জেনেরিক প্রকার, তাই উদাহরণটি ভেরিয়েবল সম্পর্কে কোনও সংকলন-সময় তথ্য নেই delegate।
সেই কারণে আপনি দেখতে না myDataবা rowভেরিয়েবল হিসেবে।
আপনি যদি প্রেরণের ফলাফলটি পরীক্ষা করতে চান -rowবা -myData, আপনি আদেশগুলি pবা ব্যবহার করতে পারেন po:
p (NSInteger)[indexPath row]
po [delegate myData]
বা এক্সপ্রেশন উইন্ডোটি ব্যবহার করুন (উদাহরণস্বরূপ, যদি আপনি জানেন যে আপনার delegateপ্রকৃত ধরণের হয় MyClass *, আপনি একটি এক্সপ্রেশন যুক্ত করতে পারেন (MyClass *)delegate, বা ডান-ক্লিক করতে পারেন delegate, বেছে নিতে পারেন View Value as…এবং প্রকৃত ধরণের টাইপ করুন delegate(যেমন MyClass *)।
বলা হচ্ছে, আমি সম্মত হই যে ডিবাগারটি আরও সহায়ক হতে পারে:
সংকলন-সময় তথ্যের পরিবর্তে ডিবাগার উইন্ডোকে রান-টাইম ধরণের তথ্য ব্যবহার করতে বলার বিকল্প থাকতে পারে। এটি ডিবাগারটি ধীর করবে, মঞ্জুর করা হবে, তবে দরকারী তথ্য সরবরাহ করবে;
ঘোষিত বৈশিষ্ট্যগুলি বৈশিষ্ট্য নামে পরিচিত একটি গোষ্ঠীতে প্রদর্শিত হতে পারে এবং সরাসরি ডিবাগার উইন্ডোতে (alচ্ছিক) পরিদর্শন করার অনুমতি দেয়। এটি ডিবাগারকে ধীর করবে কারণ তথ্য পাওয়ার জন্য কোনও পদ্ধতি পাঠানো / চালানো দরকার, তবে দরকারী তথ্যও সরবরাহ করবে।