অবজেক্টিভ-সি-তে ত্রুটি "উদাহরণস্বরূপ অজ্ঞাত নির্বাচনকারীকে পাঠানো হয়েছে" error


155

আমি একটি বোতাম তৈরি করেছি এবং এর জন্য একটি ক্রিয়া যুক্ত করেছি, তবে এটি আসার সাথে সাথে আমি এই ত্রুটিটি পেয়েছি:

-[NSCFDictionary numberButtonClick:]: unrecognized selector sent to instance
 0x3d03ac0 2010-03-16 22:23:58.811
 Money[8056:207] *** Terminating app
 due to uncaught exception
 'NSInvalidArgumentException', reason:'*** -[NSCFDictionary numberButtonClick:]:  unrecognized selector sent to instance 0x3d03ac0'

এটি আমার কোড:

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
    if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) {
        UIButton *numberButton = [UIButton buttonWithType:UIButtonTypeCustom];        
        numberButton.frame = CGRectMake(10, 435, 46, 38);
        [numberButton setImage:[UIImage imageNamed:@"one.png"] forState:UIControlStateNormal];
        [numberButton addTarget:self action:@selector(numberButtonClick:) forControlEvents:UIControlEventTouchUpInside];
        [self.view addSubview: numberButton]; 
    }
return self;
}

-(IBAction)numberButtonClick:(id)sender{
    NSLog(@"---");
}

উত্তর:


187

দেখে মনে হচ্ছে আপনি ভিউ কন্ট্রোলারটি সঠিকভাবে পরিচালনা করছেন না এবং এটি কোনও সময়ে ডিলোক্যাট করা হচ্ছে - যার ফলে numberButtonClicked:পদ্ধতিটি অন্য কোনও বস্তুর কাছে প্রেরণ করে যা এখন মেমরিটি দখল করে যা ভিউ কন্ট্রোলার আগে দখল করে ছিল ...

নিশ্চিত হয়ে নিন আপনি সঠিকভাবে আপনার ভিউ কন্ট্রোলারকে ধরে রেখেছেন / ছেড়ে দিচ্ছেন।


105
এটি কোডের খুব কয়েকটি লাইন থেকে খুব চতুর রোগ নির্ণয়।
মাইকেল মরিসন

41
ঠিক আছে, তাই সমস্যা চিহ্নিত হয়েছে ... তবে "নিশ্চিত হয়ে নিন যে আপনি সঠিকভাবে আপনার ভিউ নিয়ন্ত্রককে ধরে রেখেছেন / প্রকাশ করছেন" " একটি পরামর্শ, একটি সমাধান নয়।
অ্যালেক্স গ্রে

12
@ আলেক্স ধূসর, কি? ভিউ কন্ট্রোলারের যথাযথ মেমরি পরিচালনা সমস্যা সমাধান করেছে ... আমি বুঝতে পারি না কীভাবে এটি সমাধান নয়?
জেসারিন

28
সঠিক। যদিও এটি "সংশোধন" বলে মনে হচ্ছে .. এবং আমি সংখ্যালঘুতে থাকতে পারি (যদিও আমি এখনও বিদ্যমান থাকতে পারি), তবে সমস্যা এবং সমাধানের মধ্যে সংযোগটি অবিলম্বে সুস্পষ্ট নয়। উদাহরণস্বরূপ, আমি মুখোমুখি হয়েছি -[NSWindow end]: unrecognized selector sent to instance 0x100523e80 এবং যদিও আমি ওপি'র সাথে মিল খুঁজে পেয়েছি এবং এমনকি আপনার উত্তর থেকে সমস্যার কারণও রয়েছে, তবে ঠিক করা বাস্তবায়ন তাৎক্ষণিকভাবে সুস্পষ্ট নয়
অ্যালেক্স গ্রে

12
এটা অবিলম্বে সুস্পষ্ট। আপনার এনএস উইন্ডো মেমরি পরিচালনা লাইন বরাবর কোথাও সঠিক নয়। এটি জীবনচক্রের মধ্য দিয়ে যান এবং এটি সংশোধন করুন।
জেসারিন

127

গুগলের মাধ্যমে যারা এখানে আসছেন তাদের জন্য আমি যেমন করেছি, যা সম্ভবত এক্সকোড ৪.২ + / আইওএস ৫+ এর সাথে আরও বেশি, আরআরসি দিয়ে কি আরও বেশি কিছু সম্পর্কিত। আমার একই ত্রুটি ছিল " উদাহরণ স্বীকৃত নির্বাচক পাঠানো হয়েছে "। আমার ক্ষেত্রে প্রেরক পরামিতি হিসাবে নিজেকে পাস করার জন্য আমার কাছে একটি ইউআইবাটনের টার্গেট অ্যাকশন ছিল, তবে পরে বুঝতে পারলাম আমার এটির দরকার নেই এবং কোডটি সরিয়ে দিয়েছি। সুতরাং, এর মতো কিছু:

- (IBAction)buttonPressed:(UIButton *)sender {

এতে পরিবর্তন করা হয়েছিল:

- (IBAction)buttonPressed {

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


এটি খুব সহায়ক ছিল, যদিও আমি মনে করি এটির নিজস্ব প্রশ্ন এবং প্রতিক্রিয়া এটি সন্ধান করা আরও সহজ করে তুলবে।
কর্টিস ইন্ডারভিচে

@ লিওনার্ডচ্যালিস প্যারামিটার হিসাবে পাস না করা হলে আপনি কীভাবে প্রেরককে বাটন প্রেসে রেফারেন্স করতে পারবেন?
জাকদানস

8
খুব সহায়ক প্রতিক্রিয়া। আমি ঠিক এই সঠিক সমস্যার মধ্যে দৌড়েছি এবং আপনার সমাধান ঠিক সঠিক ছিল। আইটিউনসুতে স্ট্যানফোর্ড আইওএস ক্লাস অনুসরণ করা হয়েছিল যখন এটি ঘটেছিল। আপনার উত্তরের জন্য আবার ধন্যবাদ!
মার্শাল আলসুপ

1
ধন্যবাদ লিওনার্ডচ্যালিস আমি আপনার উত্তরের প্রশংসামূলক উত্তর যুক্ত করেছি added
1.21 গিগাওয়াটস

1
আমি কেবল একই ধরণের সমস্যার সাথে লড়াই করে যাচ্ছিলাম, নির্বাচক ফাংশন থেকে প্রেরকের পরামিতি সরিয়ে দিয়েছিলাম এবং তারপরে কীভাবে প্রেরককে পেতে পারি তা ভেবে অবাক হয়েছি। আমার ক্ষেত্রে, আমি ত্রুটিটি পেয়েছিলাম কারণ আমি নির্বাচক কলব্যাকের পরে কোনও কলোন স্থাপন করতে ভুলে গিয়েছিলাম, যার ফলে কলিং সিকোয়েন্সটি মেলেনি। কোলন দিয়ে, আমি প্রেরকের যুক্তি রাখতে পারি।

74

এটি এই ইস্যুটির শীর্ষস্থানীয় গুগল উত্তর ছিল, তবে আমার একটি ভিন্ন কারণ / ফলাফল ছিল - আমি ভেবেছিলাম যে এই সমস্যাটি থেকে অন্যরা যদি হোঁচট খায় তবে আমি আমার দুটি সেন্ট যুক্ত করব।

ঠিক আজ সকালে আমার একই রকম সমস্যা ছিল। আমি দেখতে পেয়েছি যে আপনি যদি ইউআই আইটেমটি সমস্যাটি সরবরাহ করে তা ডানদিকে ক্লিক করেন তবে আপনি কী সংযোগ তৈরি হয়েছে তা দেখতে পাবেন। আমার ক্ষেত্রে আমার কাছে দুটি ক্রিয়া পর্যন্ত একটি বোতাম ছিল। আমি ডান ক্লিক মেনু থেকে ক্রিয়া মুছে ফেলা এবং তাদের পুনরায় আপ এবং আমার সমস্যা স্থির ছিল।

সুতরাং আপনার ক্রিয়াগুলি ঠিকঠাক হয়ে গেছে তা নিশ্চিত করুন।


এটা আমার সমস্যা ছিল। আমি একটি ফাংশনটির নাম পরিবর্তন করে আমার কোড পরিবর্তন করেছি তবে xib ফাইলে সংযোগটি পরিবর্তন করি নি।
বিএফট্রিক

2
ধন্যবাদ! দেখা গেল যে আমার কাছে তিনটি পদ্ধতি রয়েছে যা আমি মুছে ফেলেছি এখনও উল্লেখযোগ্য। আমাকে এক সপ্তাহ বিরক্ত করছে!
এরদেখায়সার

25

ঠিক আছে, আমাকে এখানে চিপ করতে হবে। ওপি গতিশীলভাবে বোতামটি তৈরি করেছে । আমারও একই রকম সমস্যা ছিল এবং উত্তরটি (শিকারের কয়েক ঘন্টা পরে) এতো সহজ এটি আমাকে অসুস্থ করে তুলেছে।

ব্যবহার করার সময়:

action:@selector(xxxButtonClick:)

or (as in my case)

action:NSSelectorFromString([[NSString alloc] initWithFormat:@"%@BtnTui:", name.lowercaseString])

আপনি যদি স্ট্রিংয়ের শেষে একটি কোলন রাখেন - এটি প্রেরককে পাস করবে। আপনি যদি স্ট্রিংয়ের শেষে কোলন না রাখেন তবে এটি হবে না এবং প্রেরক যদি এটির প্রত্যাশা করে তবে একটি ত্রুটি পাবেন। আপনি যদি গতিশীলভাবে ইভেন্টের নামটি তৈরি করে থাকেন তবে কোলনটি মিস করা সহজ।

রিসিভার কোড অপশনগুলি দেখতে দেখতে:

- (void)doneBtnTui:(id)sender {
  NSLog(@"Done Button - with sender");
}
 or
- (void)doneBtnTui {
  NSLog(@"Done Button - no sender");
}

যথারীতি, এটি সর্বদা স্পষ্ট উত্তর যা মিস হয়।


1
তাই আপনাকে অনেক ধন্যবাদ! এটি আমার সমস্যা (নির্বাচকটির নামের শেষে ':' কোলন স্থাপন করা হয়নি)। এটি কীভাবে প্রায় সর্বদা সবচেয়ে বোকা সাধারণ জিনিস যেগুলি ভোর তিনটায় আমাদের প্রাচীরের বিরুদ্ধে মাথা ঠাট্টা করে? সত্যিই আপনাকে ধন্যবাদ!
TWright

23

আমার ক্ষেত্রে ফাংশনটি কোনও যুক্তির প্রত্যাশা করে না তবে ত্রুটির কারণ হিসাবে প্রেরণ করতে বোতামটি কনফিগার করা হয়েছিল। এটি ঠিক করার জন্য আমাকে ইভেন্ট হ্যান্ডলারটি পুনর্বিবেচনা করতে হয়েছিল।

এখানে আমার ফাংশন:

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

লক্ষ্য করুন এটিতে কোন যুক্তি নেই।

এখানে আমার বোতামের কনফিগারেশনের চিত্র রয়েছে (এটি দেখার জন্য বোতামে ডান ক্লিক করুন):

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

লক্ষ্য করুন 3 টি ইভেন্ট হ্যান্ডলার রয়েছে।

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

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

পরবর্তী আমাকে ইভেন্টটিতে বোতামটি পুনরায় সংযোগ করতে হয়েছিল। এটি করতে কন্ট্রোল কীটি ধরে রাখুন এবং তারপরে ক্রিয়ায় বোতাম থেকে একটি লাইন টেনে আনুন। এটিতে "কানেক্ট অ্যাকশন" বলা উচিত। দ্রষ্টব্য: কোনও কারণে কাজ করার জন্য আমাকে এক্সকোড পুনরায় চালু করতে হয়েছিল; অন্যথায় এটি আমাকে ফাংশনের উপরে বা নীচে কেবল ক্রিয়াগুলি সন্নিবেশ করতে দেয় (ওরফে একটি নতুন ক্রিয়া তৈরি করতে)।

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

আপনার এখন একক ইভেন্ট হ্যান্ডলারটি বাটন ইভেন্টটিতে তারযুক্ত হওয়া উচিত যা কোনও যুক্তি ছাড়াই:

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

এই উত্তরটি @ লিওনার্ড চেলিসের উত্তরের প্রশংসা করে যা আপনার পাশাপাশি পড়া উচিত।


14

আপনি যদি ইন্টারফেস বিল্ডারে ভিউটির "শ্রেণি" সেট না করেন তবে এটিও ঘটতে পারে।


আঃ আপনাকে ধন্যবাদ! এটি আমার অ্যাপটিকে একটি সিগেই ক্র্যাশ করছিল, কেবল নিয়ামকের শ্রেণি সেট করতে ভুলে গিয়েছিল।
আইছারঞ্চেন

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

13

আমার ক্ষেত্রে, আমি এনএসএনটিফিকেশন সেন্টার ব্যবহার করছিলাম এবং এমন কোনও নির্বাচককে ব্যবহার করার চেষ্টা করছিলাম যা কোনও যুক্তি না নিয়ে, তবে একটি কর্নেল যুক্ত করছিল। কোলন সরানো সমস্যার সমাধান করে।

কোনও নির্বাচকের নাম ব্যবহার করার সময়, কোনও আর্গুমেন্ট না থাকলে ট্রেলিং কোলোন ব্যবহার করবেন না। যদি একটি যুক্তি থাকে তবে একটি অনুসরণকারী কোলন ব্যবহার করুন। যদি একাধিক যুক্তি থাকে তবে প্রতিটি যুক্তির জন্য আপনাকে অবশ্যই তাদের নাম লিখতে হবে।

অ্যাডাম রোজেনফিল্ডের উত্তরটি এখানে দেখুন: উদ্দেশ্য-সি-তে নির্বাচকরা?


11

আমার একটি সুইফ্ট প্রকল্পে এই সমস্যাটি ছিল যেখানে আমি গতিশীলভাবে বোতামগুলি তৈরি করছি। সমস্যা কোড:

var trashBarButtonItem: UIBarButtonItem {
    return UIBarButtonItem(barButtonSystemItem: .Add, target: self, action: "newButtonClicked")
}

func newButtonClicked(barButtonItem: UIBarButtonItem) {
    NSLog("A bar button item on the default toolbar was clicked: \(barButtonItem).")
}

সমাধানটি হ'ল ক্রিয়াটির পরে একটি সম্পূর্ণ কোলন ':' যুক্ত করা: উদাঃ

var trashBarButtonItem: UIBarButtonItem {
        return UIBarButtonItem(barButtonSystemItem: .Add, target: self, action: "newButtonClicked:")
    }

    func newButtonClicked(barButtonItem: UIBarButtonItem) {
        NSLog("A bar button item on the default toolbar was clicked: \(barButtonItem).")
    }

এখানে সম্পূর্ণ উদাহরণ: https://developer.apple.com/library/content/samplecode/UICatalog/Listings/Swift_UIKitGtGlug_DefaultToolbarViewController_swift.html


টিউটোরিয়ালটি অনুসরণ করার পরে এবং এই একই সমস্যাটি সম্পর্কে একটি ইঙ্গিত পড়ার পরে - আমি এর জন্য পড়ে গিয়েছিলাম: D
user2161301

6

এর সর্বাধিক সুস্পষ্ট কারণ (সম্পূর্ণতার জন্য অন্তর্ভুক্ত) যথাযথভাবে একটি পয়েন্টার ingালাই এবং ভুল শ্রেণীর কোনও পদ্ধতি কল করা।

NSArray* array = [[NSArray alloc] init];
[(NSDictionary*)array objectForKey: key]; // array is not a dictionary, hence exception

এটি একটি ভাল ইঙ্গিত - কোনও ভিউ বা ডেটা অবজেক্টকে সাবক্লাসিং না করা (যেমন সাবক্লাসের নাম যুক্ত করতে ব্যর্থ হয়ে) এটি হওয়ার আরও একটি উপায়
ব্র্যাড এম

4

আমারও একই সমস্যা ছিল।

আমি আমার স্ট্যান্ডবোর্ডে আমার ইউবিটনটি মুছে ফেলেছি এবং এটি পুনরায় তৈরি করেছি ... এখন সবকিছু ঠিকঠাক কাজ করে।


3

আমারও একই সমস্যা ছিল, তবে আমার জন্য সমাধানটি কিছুটা আলাদা ছিল। (- এই দেখতে কিছু মাপ ক্ষমতার UIImage আমার ক্ষেত্রে, আমি একটি বিদ্যমান বর্গ প্রসারিত করার জন্য একটি শ্রেণী ব্যবহৃত হাওটুর তুমি আগ্রহী ক্ষেত্রে) এবং বিল্ড টার্গেটের * .m ফাইল যোগ করতে ভুলে গেছি। বোকা ত্রুটি, তবে যেখানে দেখা উচিত যেখানে ঘটে তা সর্বদা সুস্পষ্ট নয়। আমি ভেবেছিলাম এটি ভাগ করে নেওয়ার মতো ...


3

এটি আমার ক্ষেত্রে ঘটেছিল কারণ ঘটনাক্রমে আমার ইউআইভিউকন্ট্রোলার ক্লাস কোডের মধ্যে "@ আইবিএশন ফানক ..." মুছুন, সুতরাং স্টোরিবোর্ডে রেফারেন্স আউটলেট তৈরি করা হয়েছিল, তবে রানটাইমগুলিতে এটি প্রক্রিয়া করার জন্য কোনও ফাংশন ছিল।

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

আশা করি এটা সাহায্য করবে!


তেমনি, আমার সাথে এটিও ঘটেছিল যখন বোতামটি এমন কোনও ক্রিয়াকলাপটিকে রেফার করে যেটি আর বিদ্যমান নেই।
জোশ ওল্ফ 20'18

2

আমি মনে করি আপনার রিটার্ন টাইপের আইবিএक्शनের পরিবর্তে অকার্যকর ব্যবহার করা উচিত। কারণ আপনি প্রোগ্রামিকভাবে একটি বোতাম সংজ্ঞায়িত করেছেন।


2

আর একটি সম্ভাব্য সমাধান: আপনার লিঙ্কারের যুক্তিতে '-ObjC' যুক্ত করুন।

সম্পূর্ণ ব্যাখ্যা এখানে: স্থির লাইব্রেরিতে উদ্দেশ্য-সি বিভাগসমূহ

আমি মনে করি সংক্ষেপটি হ'ল: যদি বিভাগটি কোনও লাইব্রেরিতে সংজ্ঞায়িত করা হয় যা আপনি স্থিরভাবে সংযুক্ত করছেন, লিঙ্কারটি বিভাগের পদ্ধতিতে লিঙ্ক করার জন্য যথেষ্ট স্মার্ট নয়। উপরের পতাকাটি আপনার উত্স বিশ্লেষণের উপর ভিত্তি করে কেবল এটির মনে করে যা এটি প্রয়োজন বলে মনে করে না সমস্ত উদ্দেশ্য সি শ্রেণি এবং বিভাগগুলিতে লিঙ্কারের লিঙ্ক তৈরি করে। (দয়া করে এই উত্তরটির সুর বা সংশোধন করতে দ্বিধা বোধ করবেন linked আমি সংযুক্ত ভাষাগুলির সাথে পরিচিত ছিলাম, তাই আমি কেবল এখানে তোতাবরণ করছি)।


2

আমার একই ত্রুটি ছিল এবং আমি নিম্নলিখিতগুলি আবিষ্কার করেছি:

আপনি যখন কোডটি ব্যবহার করবেন

[self.refreshControl addTarget:self action:@selector(yourRefreshMethod:) forControlEvents:UIControlEventValueChanged];

আপনি মনে করতে পারেন এটি নির্বাচককে খুঁজছে:

- (void)yourRefreshMethod{
    (your code here)
}

তবে এটি আসলে নির্বাচককে খুঁজছে:

- (void)yourRefreshMethod:(id)sender{
    (your code here)
}

সেই নির্বাচকটির অস্তিত্ব নেই, সুতরাং আপনি ক্র্যাশ পান।

ত্রুটি সমাধানের জন্য আপনি নির্বাচককে (আইডি) প্রেরক গ্রহণ করতে পরিবর্তন করতে পারেন।

তবে যদি আপনার অন্য কোনও ফাংশন থাকে যা কোনও প্রেরক সরবরাহ না করেই রিফ্রেশ ফাংশনটিকে কল করে ? আপনার দু'জনের জন্য কাজ করে এমন একটি ফাংশন প্রয়োজন। সহজ সমাধানটি হ'ল অন্য ফাংশন যুক্ত করা:

- (void)yourRefreshMethodWithSender:(id)sender{
    [self yourRefreshMethod];
}

এবং তারপরে সেই নির্বাচককে কল করতে রিফ্রেশ পুলডাউন কোডটি সংশোধন করুন:

[self.refreshControl addTarget:self action:@selector(yourRefreshMethodWithSender:) forControlEvents:UIControlEventValueChanged];

আমি পুরানো ম্যাকের স্ট্যানফোর্ড আইওএস কোর্সটিও করছি যা ম্যাক ওএসএক্সের নতুন সংস্করণে আপগ্রেড করা যায় না। সুতরাং আমি এখনও আইওএস 6.1 তৈরি করছি এবং এটি আমার জন্য সমস্যার সমাধান করেছে।


2

আমার ক্ষেত্রে আমি 2 ঘন্টা পরে সমস্যার সমাধান করেছি:

প্রেরকের (একটি ট্যাববার আইটেম) কোনও রেফারেন্সিং আউটলেট ছিল না । সুতরাং এটি কোথাও পয়েন্ট ছিল।

জাস্ট আপনার ফাংশনের সাথে সম্পর্কিত একটি রেফারেন্সিং আউটলেট তৈরি করুন।

আশা করি এটি আপনাদেরকে সহায়তা করতে পারে।


কেবল যোগ করতে, আমার ক্ষেত্রে আমি সুইফটে একটি পোর্ট করতে ভুলে গিয়েছিলাম IBAction। সুতরাং এটি অভিযোগ করছিল যে এটি সেই ফাংশনটি কল করতে চেয়েছিল, কিন্তু এটি পাওয়া যায়নি।
DevNebulae

1

আমি বর্তমানে আইওএস বিকাশ শিখছি এবং এপ্রিসের "বিগনিং আইওএস 6 ডেভলপমেন্ট" বইটি যাচ্ছি। দশম অধ্যায়: স্টোরিবোর্ডে আমি একই ত্রুটি পেয়েছি।

এটি নির্ধারণ করতে আমার দু'দিন সময় লেগেছে তবে আমি খুঁজে পেয়েছিলাম যে আমি ভুলবশত টেবিলভিউ সেলটির ট্যাগটি 1 এ সেট করেছিলাম যখন আমার থাকা উচিত ছিল না। অন্য কারও জন্য এই বইটি করছেন এবং অনুরূপ ত্রুটি পাবেন আশা করি এটি সহায়তা করবে।

আমি সত্যই আশা করি আমার কোডে ভবিষ্যতের ত্রুটিগুলি খুঁজে পাওয়া সহজ! Hahaha। ডিবাগ ত্রুটিটি এটি সঠিকভাবে আবিষ্কার করার জন্য আমাকে সঠিক দিকে ঠেলে দেওয়ার পক্ষে কিছুই করেনি (বা কমপক্ষে আমি ডিবাগারটি বোঝার জন্য খুব বেশি নতুন, লোল)।


1

আমার ক্ষেত্রে আমি একটি ইউআইবিউব ভিউ ব্যবহার করছিলাম এবং আমি এনএসআরএল-এর পরিবর্তে দ্বিতীয় প্যারামিটারে একটি এনএসএসস্ট্রিং পাস করেছি। সুতরাং আমি সন্দেহ করি যে ভুল শ্রেণীর ধরণের কোনও ফাংশনে পাস করা এই ত্রুটির কারণ হতে পারে।


1

..আর এখন আমার

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

আমি ফাইলটির মালিকের সাথে বোতামটি লিঙ্ক করতে ব্যর্থ হয়েছি। সুতরাং এখানে যদি কেউ আমার মতো নির্বোধ হয় তবে এটি চেষ্টা করুন :)


1

তবুও আরও কিছুটা আলাদা সমাধান / কেস।

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

যখন বাঁধাই হয় আমি কেবল আউটলেট ব্যবহার করি:

set.Bind (somethingOutlet).For ("TouchUpInside").To(vm => vm.Something);

আমাকে যা করতে হয়েছিল তা হ'ল এক্সকোডের অ্যাকশন (টাচআপসিনসাইড) সংযোগটি সরিয়ে ফেলতে হবে এবং এটি এটিকে সমাধান করেছে।

পিএস আমার ধারণা, এটি পূর্বের উত্তরগুলির সাথে সম্পর্কিত এবং বিশেষ করে @ ক্রিস কামিনস্কির সাথে সম্পর্কিত, তবে আমি আশা করি এটি কারওর পক্ষে সহায়তা করবে ...

চিয়ার্স।


1

আমারো একই ইস্যু ছিল. আমার জন্য সমস্যাটি হ'ল এক বোতামটিতে দুটি অ্যাকশন পদ্ধতি ছিল। আমি যা করেছি তা হ'ল আমার বোতামটির জন্য প্রথম অ্যাকশন পদ্ধতি তৈরি করে তারপরে এটি ভিউ কন্ট্রোলারে মুছে ফেলা হয়েছে তবে সংযোগ পরিদর্শকের মূল স্টোরিবোর্ডে সংযোগটি সংযোগ বিচ্ছিন্ন করতে ভুলে গিয়েছি। সুতরাং আমি যখন দ্বিতীয় ক্রিয়া পদ্ধতি যুক্ত করেছি তখন একটি বোতামের জন্য এখন দুটি ক্রিয়া পদ্ধতি ছিল যা ত্রুটির কারণ হয়েছিল।


1

আমার জন্য, এটি ইন্টারফেস বিল্ডার বিজ সিটিআরএল-ট্রেগিংয়ে তৈরি একটি বাকী সংযোগ ছিল। ভাঙা সংযোগের নামটি ছিল ত্রুটি-লগ

*** Terminating app due to uncaught exception 'NSInvalidArgumentException',
reason: '-[NameOfYourApp.NameOfYourClass nameOfCorruptConnection:]:
unrecognized selector sent to instance 0x7f97a48bb000'

আমার একটি বোতামের সাথে সংযুক্ত একটি ক্রিয়া ছিল। বোতাম টিপলে অ্যাপটি ক্র্যাশ হয়ে গেছে কারণ আউটলেটটি আমার কোডে আর বিদ্যমান নেই। লগটিতে নাম সন্ধান করা আমাকে স্টোরিবোর্ডে নিয়ে গেছে। এটি মুছে ফেলা হয়েছে, এবং ক্রাশটি গেছে!


0

আমি লিওনার্ড চেলিসকে জবাব দিচ্ছি, যেহেতু আমি স্ট্যানফোর্ড আইওএস ক্লাস সি 193 পিও নিয়ে যাচ্ছিলাম, যেমন ব্যবহারকারী "oli206" ছিল

"অপ্রত্যাশিত ব্যতিক্রম 'এনএসআইডিয়োডিয়ালগমেন্ট এক্সেক্সেশন' এর কারণে অ্যাপ্লিকেশনটি সমাপ্ত করা হচ্ছে, কারণ:"

সমস্যাটি হ'ল আমার কাছে ক্যালকুলেটারে "এন্টার" বোতামটি দু'বার সংযুক্ত ছিল এবং একটি বন্ধু নির্দেশ করেছিল যে স্টোরিবোর্ডে বোতামটি পরীক্ষা করে দেখানো হয়েছিল যে আমি যখন ডান ক্লিক করেছি তখন 2 টি প্রবেশদ্বার "টাচ আপ ইনসাইড" বৈশিষ্ট্যগুলিতে ছিল 2 "প্রবেশ করুন" বোতামটি। দুটি "টাচ আপ ইনসাইড" "প্রেরিত ইভেন্টস" এর মধ্যে একটি মুছে ফেলা সমস্যার সমাধান করে।

এটি দেখিয়েছিল যে সমস্যাটি ট্রিগার করা হয়েছে (অ্যাসাইনমেন্ট 1 তে ক্যালকুলেটর ওয়াকথ্রুতে C193P ভিডিও শ্রেণীর জন্য) 2 প্রেরিত ইভেন্ট হিসাবে, যার একটি ব্যতিক্রম ঘটায়।


আমি 3 কিছু এন্ট্রি ছিল কিভাবে। :)
1.21 গিগাওয়াট

0

এটি ঘটতে পারে যখন আপনি ইন্টারফেসবিল্ডারে ভিউকন্ট্রোলারসিউনে ভিউকন্ট্রোলারকে নিয়োগ না করেন। সুতরাং ViewController.m কোনও দৃশ্যের সাথে সংযুক্ত নয়।


0

আমার ভাগ সহ। আমি এআরসি (অটোমেটিক কাউন্টিং রেফারেন্স) অক্ষম করে একটি প্রকল্প তৈরি না করা পর্যন্ত আমি এটির জন্য কিছুক্ষণ আটকে গেলাম । এই বিকল্পে হ্যাঁ একটি দ্রুত সেট আমার সমস্যা সমাধান করেছে।


0

এর আর একটি সত্যই নির্বোধ কারণ নির্বাচককে ইন্টারফেসে (। এইচ) সংজ্ঞায়িত করা হয়েছে তবে বাস্তবায়নে নয় (এম। এম) (পি টাইপ)


0

তালিকায় যুক্ত করার অন্য একটি কারণ / সমাধান। এটি আইওএস 6.0 (এবং / বা খারাপ প্রোগ্রামিং) এর কারণে ঘটে is পুরানো সংস্করণগুলিতে নির্বাচকটি প্যারামিটারের ধরনগুলি মিলে গেলে মিলবে তবে আইওএস 6.0 এ আমি পূর্ববর্তী কার্যকরী কোডে ক্র্যাশ পেয়েছিলাম যেখানে প্যারামিটারটির নামটি সঠিক ছিল না।

আমি এমন কিছু করছিলাম

[objectName methodName:@"somestring" lat:latValue lng:lngValue];

তবে আমার সংজ্ঞাতে (.h এবং .m) উভয়ই ছিল

(viod) methodName:(NSString *) latitude:(double)latitude longitude:(double)longitude;

এটি আইওএস 5 তে দুর্দান্ত কাজ করেছে তবে 6 এ নয়, এমনকি একই ডিভাইসটি বিভিন্ন ডিভাইসে মোতায়েন করা হয়েছে।

সংকলক আমাকে কেন এটি না জানায় তা পাই না, সমস্যা - soled।


0

এটি আপনি যখন কাস্ট্রোলআরএল থেকে কোনও কাস্টম কন্ট্রোলার বর্গের অভ্যন্তরে কোনও জনসাধারণের সম্পত্তিতে সেট করতে চান এবং স্টোরিবোর্ডগুলিতে পরিচয় পরিদর্শকের অভ্যন্তরে আপনি "কাস্টম ক্লাস" সেট করেন নি তখন এটিও ঘটতে পারে।


0

আমার সমস্যা এবং সমাধানটি আলাদা ছিল এবং আমি ভেবেছিলাম আমার এটি এখানে পোস্ট করা উচিত যাতে ভবিষ্যতের পাঠকরা প্রাচীরের দিকে মাথা ঠেকানো থেকে তাদের মাথা বাঁচাতে পারে।

আমি একই ইউআইভিআইউইউ কনট্রোলারকে বিভিন্ন এক্সিব বরাদ্দ করছিলাম এবং সর্বত্র অনুসন্ধান করার পরেও আমি কীভাবে এটি সংশোধন করতে পারি তা খুঁজে পেলাম না। তারপরে আমি আমার অ্যাপডেলিগেটটি যাচাই করেছিলাম যেখানে আমি কল করেছিলাম initWithNibNameএবং দেখতে পাচ্ছি যে কোডটি অনুলিপি করার সময়, আমি xib নামটি পরিবর্তন করেছি, তবে UIViewControllerক্লাস পরিবর্তন করতে ভুলে গিয়েছি । সুতরাং সমাধানের কোনওটি যদি আপনার পক্ষে কাজ করে না, তবে আপনার initWithNibNameপদ্ধতিটি পরীক্ষা করে দেখুন ।


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