স্টোরিবোর্ড সতর্কতা: প্রোটোটাইপ টেবিল কক্ষে অবশ্যই পুনরায় ব্যবহারকারীর শনাক্তকারী থাকতে হবে


123

স্টোরিবোর্ড থেকে আমি এই সতর্কতাটি পাচ্ছি - প্রোটোটাইপ টেবিল কক্ষে অবশ্যই পুনরায় ব্যবহারকারীর শনাক্তকারী থাকতে হবে।

আমি বৈশিষ্ট্য পরিদর্শকটিতে শনাক্তকারীটির নতুন নামকরণ করেছি তবে এটি সতর্কতা সরিয়ে ফেলেছে বলে মনে হয় না।

কোনও পরামর্শ?


আপনি হয় ভুল ক্ষেত্রটি পূরণ করেছেন অথবা আপনার একাধিক টেবিল ভিউ রয়েছে। আপনি বৈশিষ্ট্য পরিদর্শকের একটি স্ক্রিনশট পোস্ট করতে পারেন?
jrturton

3
ঠিক আছে এখন সাথী। আমি একটি সমাধান খুঁজে পেয়েছি। আইডেন্টিফায়ারের মানটি পুনরায় ব্যবহারকারীর শনাক্তকারীর মতো হওয়া উচিত। :)
কে.হোন্ডা

আপনি কি প্রতিটি ঘরের জন্য একটি সনাক্তকারী সেট করেছেন?
মিক ম্যাককালাম

হাই হোন্ডা! আপনি কি আমাকে দয়া করে বলতে পারেন কারণ আমি একই ত্রুটি পাচ্ছি।
বরুণ মেহতা

2
আমি লক্ষ করেছি যে কখনও কখনও (বর্তমানে সর্বশেষতম এক্সকোড 5 বিটা 5 (5B103i) ব্যবহার করে) স্টোরিবোর্ডে ত্রুটি / সতর্কতার ভুল অবস্থানগুলি হাইলাইট করে। সুতরাং আপনি যদি সতর্কতার উপরে ক্লিক করেন তবে এটি কখনও কখনও ভুল অবস্থানটি দেখায় যেখানে ইতিমধ্যে অনুরূপ সতর্কতা স্থির করা যেতে পারে। আমি আপনাকে পরামর্শ দিচ্ছি যে আপনার স্টোরিবোর্ডে থাকা কোনও টেবিলভিউ ম্যানুয়ালি যেতে হবে এবং নিখোঁজ শনাক্তকারী সহ অন্য কোনও ঘর আছে কিনা তা পরীক্ষা করে দেখুন। উপরে এই সতর্কতা দিয়ে আমার সমস্যা সমাধান করুন। এই বিষয়টি আমাকে কীভাবে সমস্যাটি সমাধান করতে হয় তা বুঝতে সহায়তা করে বলে প্রশ্ন জিজ্ঞাসা করার জন্য @ কে.হোন্ডাকে ধন্যবাদ।
জাস্টাস

উত্তর:


159

সতর্কতাটি বন্ধ করতে আপনাকে ঘর সনাক্তকারীকে একটি নাম দিতে হবে:

এখানে চিত্র বর্ণনা লিখুন


14
আমাকে খুশি। এক্সকোডটি বন্ধ করুন - এটি খুলুন এবং তারপরে শনাক্তকারীটি পরিবর্তন করুন
ইডান ম্যাগলেড

7
সতর্কবার্তাটি যখন থেকে যায় তার অর্থ আপনার স্টোরিবোর্ডে কোথাও শনাক্তকারী ছাড়া একটি ঘর রয়েছে
সাইমনক্স

আপনার যদি 1 টিরও বেশি প্রোটোটাইপ কোষ থাকে, আপনার অবশ্যই তাদের অবশ্যই সমস্ত ক্ষতিকারককে দেওয়া উচিত, অন্যথায় প্রোটোটাইপ সেলে একটিতে নম্বরটি সেট করুন
ব্যবহারকারী 1700737

6
এই উত্সাহজনক সতর্কতা থেকে মুক্তি পেতে আমাকে ডারাইভড ডেটা ফোল্ডারটি (একটি উইন্ডোজ রিবুটের সমপরিমানের কোডকোড) মুছে ফেলতে হয়েছিল এবং পুনর্নির্মাণ করতে হয়েছিল।
মাইকেল ম্যাকগুইয়ার

এটি আমার জন্য কাজ করেছে: এক্সকোড বন্ধ করুন, অনুসন্ধানকারীর মধ্যে খোলা / ব্যবহারকারী / ব্যবহারকারী / গ্রন্থাগার / বিকাশকারী / এক্সকোড / ডেরিভডটা, এবং এর সমস্ত বিষয়বস্তু মুছে ফেলুন (নিজেই ডেরিভডডাটা ফোল্ডার নয়)।
dldnh

18

আরেকটি উপায় হ'ল টেবিল ভিউ 'প্রোটোটাইপ সেল' বৈশিষ্ট্যটি অ্যাট্রিবিউটস ইন্সপেক্টর-এ শূন্যে সেট করা, যদি আপনি প্রোগ্রামটিমেটিকভাবে .xib ব্যবহার করে সেলটি সংজ্ঞায়িত করছেন।

বৈশিষ্ট্য পরিদর্শক মধ্যে প্রোটোটাইপ সেল 0 এ সেট করা


9

যেহেতু স্টোরিবোর্ডটি আসলে এক্সএমএল ফাইল, তাই অন্য কৌশলটি হ'ল যে কোনও পাঠ্য সম্পাদক (এক্সকোড নয়!) দিয়ে আপনার স্টোরিবোর্ডটি খুলুন এবং সমস্ত টেবিলভিউকেল নোডগুলি সন্ধান করার চেষ্টা করুন। উদাহরণস্বরূপ সিএমডি + এফ<tableViewCell contentMode="scaleToFill" টিপুন , টাইপ করুন এবং এন্টার টিপুন। আপনি সম্ভবত এটি সন্ধান করুন, সারি একই এক:

<tableViewCell contentMode="scaleToFill" selectionStyle="blue" accessoryType="disclosureIndicator" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="GenericCellID" id="kBr-Qn-Tki">

reuseIdentifier="GenericCellID"মূল মানটির প্রতি আপনার মনোযোগ দিন । সতর্কবার্তাটি ব্যবহারকারী সারিগুলির (পুনরায় ব্যবহারকার্য শনাক্তকারীদের ছাড়া) এর কী কী মান থাকবে না। আপনার পাঠ্য সম্পাদকের উপরে নোডগুলি দেখুন এবং tableViewControllerক্লাসের নামের সাথে নোড দেখতে পাবেন যা আপনি এক্সকোডের স্টোরিবোর্ড সম্পাদকটিতে পরীক্ষা করতে হবে এবং আলিরোটের উত্তর অনুসারে ঠিক করতে হবে।


1
আপনি আসলে একটি জন্য CTRL করে Xcode সঙ্গে কোড হিসেবে আপনার স্টোরিবোর্ড খুলতে + আপনার স্টোরিবোর্ড ফাইলে ক্লিক করতে পারেন> Open As>Source Code
NSTJ

4

আপনি পুনরায় ব্যবহারকারীর সেট করার পরেও যদি আপনার এক্সকোড সতর্কতাটি না যায় তবে মেনু "পণ্য -> পরিষ্কার" ব্যবহার করে দেখুন। এটি আমার পক্ষে সহায়তা করেছিল এবং তার পরে, সতর্কতা আর প্রদর্শিত হয়নি।


2

যেহেতু এই সতর্কতাটিকে ডাবল-ক্লিক করলে কিছুটা বুনো হাঁস তাড়া করতে পারে (নির্দিষ্ট ইউআইটিএবলভিউসেল নির্বাচন করা হয় না), কেবল যুক্ত করতে চেয়েছিলেন যখন এই সতর্কতাগুলির কিছুটি স্বয়ংক্রিয়ভাবে সমাধান করবে , কিছু হবে না

আপনি যদি নিশ্চিত হন যে আপনি স্টোরবোর্ডে আপনার সমস্ত কক্ষ ট্যাগ করেছেন, প্রকল্পটি পুনর্নির্মাণ করুন - আপনার সতর্কতা অদৃশ্য হয়ে যেতে পারে (যেমন আমার হয়েছিল)।


2

একটি শিল ম্যারি: এক্সকোড পুনরায় চালু করা আমার পক্ষে কাজ করেছিল (তবে এটি সম্ভবত একটি ম্যানুয়াল পুনর্নির্মাণের প্রয়োজন ছিল)।


1

আমি এক্সকোড for এর জন্য এই সতর্কতাটি পেয়েছি I আমি সুইফ্টের সাথে কাজ করছি। আমি প্রাথমিক দেখার নিয়ামকের জন্য নেভিগেশন নিয়ন্ত্রক যুক্ত করিনি। আমি যখন এটি করেছি .. আমি স্টোরিবোর্ড থেকে এই সতর্কতা পেয়েছি। আমি যা করেছি তা হ'ল:

  1. দুটি বিভাগ আছে
    1. নেভিগেশন কন্ট্রোলার থেকে রুট ভিউ নিয়ন্ত্রক এবং
    2. রুট ভিউ কন্ট্রোলার থেকে আপনার প্রাথমিক ভিউ কন্ট্রোলার পর্যন্ত।
  2. প্রাথমিক ভিউ কন্ট্রোলারের সাথে রুট ভিউ নিয়ামককে সংযুক্ত করে সিগ নির্বাচন করুন।
  3. পরিচয়কারীর নাম দিন
  4. নিয়ন্ত্রকের "প্রোটোটাইপ" লিখিত অংশটি নির্বাচন করুন -> সেখানে আপনি বিকল্প হিসাবে সনাক্তকারী দেখতে পাবেন।
  5. পূর্বে প্রবেশ করানো হিসাবে শনাক্তকারীর একই নামটি আটকান।

সতর্কতাটি যায় .. এসডিকে পরিষ্কার না করলে :)


1

নিশ্চিত হয়ে নিন যে আপনি পুনরুদ্ধার আইডির পরিবর্তে অবজেক্টে পুনঃব্যবহারকারী সনাক্তকারী সেট করছেন । উভয় স্টোরিবোর্ডের মাধ্যমে উপলব্ধ এবং সহজেই বিভ্রান্ত।

স্টোরিবোর্ড এক্সএমএল ফাইলটিতে আপনি সেটিংস করতে চান reuseIdentifier, না restorationIdentifier


0

আমি লক্ষ্য করেছি যে যখন আপনার একাধিক প্রোটোটাইপ কোষ রয়েছে (টেবিলভিউ বৈশিষ্ট্যে) এবং তাদের সকলকে পুনরায় ব্যবহার শনাক্তকারীদের না দিয়ে থাকেন তখন এই ত্রুটি ঘটে ।


আমি এটিও দেখেছি, একবারে সমস্ত কক্ষের নাম দেওয়ার কোনও উপায় আছে বা এই সতর্কতাগুলি সরিয়ে দেওয়ার কোনও উপায় আছে?
বিড়াললভজাজ

1
প্রতিটি প্রোটোটাই সেল এর নিজস্ব অনন্য নামের প্রয়োজন। সুতরাং এটি স্বয়ংক্রিয়ভাবে করার কোনও উপায় নেই
ভিনসেন্ট

0

সনাক্তকারী হ'ল আপনার নাম .m ফাইলটিতে name যখন এটি পূরণ করা হয় না তখন ঘরটি উল্লেখ করা সম্ভব হয় না।


0

প্রোগ্রামযুক্তভাবে পুনরায় ব্যবহারকারীর সনাক্তকরণের জন্য এটি

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath (NSIndexPath*)indexPath 
{
    static NSString *cellIdentifier = @"wot";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier forIndexPath:indexPath];

    if (!cell)
        cell = [[UITableViewCell alloc] initWithStyle: someStyle reuseIdentifier: cellIdentifier];

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