আপনার বিভ্রান্তি হ'ল ঘোষিত সম্পত্তিগুলি (অগত্যা হিসাবে একই নামকরণ করা হয় না) (উদাহরণস্বরূপ) ভেরিয়েবল হয়।
এক্সপ্রেশন
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চ্ছিক) পরিদর্শন করার অনুমতি দেয়। এটি ডিবাগারকে ধীর করবে কারণ তথ্য পাওয়ার জন্য কোনও পদ্ধতি পাঠানো / চালানো দরকার, তবে দরকারী তথ্যও সরবরাহ করবে।