آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

اشکال و باگ در پروژه و سورس اصلی calculator

H.M Royal  10 سال پیش  9 سال پیش
+1 0

با درود و سلام خدمت شما،

باگ مشکل وارد کردن صفر و سپس ممیز و fatal error دادن برنامه

 به محض وارد کردن 0 و سپس ممیز مثلا" وارد کردن " 0.5 " برنامه کرش میکند و fatal error میدهد لطفا" راهنمایی کنید چطور مشکل را حل کنم .در ضمن این مشکل در سورس اصلی برنامه نیز وجود دارد.

fatal error: unexpectedly found nil while unwrapping an Optional value
(lldb)

 

با تشکر

 برای این سوال 2 پاسخ وجود دارد. مشاهده پاسخ صحیح
پاسخ به سوال 
کاشی زاده  10 سال پیش
0 0

 پاسخ صحیح

سلام ،
ممنون که اطلاع دادین .
این مشکل رو با نوشتن 2 خط دستور شرطی میشه حل کرد و با تغییر کد ها به شکل زیر مشکل بر طرف خواهد شد .

اما مشکل چی بود ؟
وقتی ما دکمه ممیز یا Point رو انتخاب میکنیم مقداری که روی آن پردازش انجام میشود "." هست و این مقدار قابل تبدیل به Double نیست .
برای رفع این مشکل دستورات رو به شکل بالا تغییر دادم که چند مرحله مختلف داره :
1- دستور if رو به بخشی که با شماره 4 مشخص شده انتقال دادم .
2- برای تمیز تر شدن کد به جای نوشتن sender.titleLable.text مقدارش رو داخل متغیری به اسم input ریختم ، این کار فقط جنبه تمیز تر شدن کد رو داره و میتونید انجام ندید .
3- دستور شرطی جدیدی که با شماره 3 نمایش داده شده را به کد ها اضافه کردم ، در واقع این دستوری هست که مشکل مارو حل میکنه و اگر ما ممیز انتخاب کنیم و مقدار داده ماشین حساب برابر صفر باشه به مقدار ".0" تبدیلش میکنه که قابل تبدیل به Double هست .

نتیجه نهایی :

سورس موجود در سایت نیز اصلاح شده و نسخه جدید بارگذاری شد .

با تشکر

پاسخ به سوال 
H.M Royal  10 سال پیش
0 0

با تشکر از پاسخ شما آقای کاشی زاده گرامی .

0 0
مشکل زدن دکمه ممیز برای بار اول با راه حل شما حل شد ولی برای مرحله بعد مثلا" ضرب عدد صحیح ( اول وارد کردن عدد صحیح سپس operation ها و سپس وارد کردن عدد اعشاری دهم دار مثل 0.2) به محض زدن دکمه ممیز برنامه کرش میکند. مثلا" عدد 2 ضربدر 0.2 برای وارد کردن 0.2 در ماشین حساب اول باید ممیز را زد این مشکل در مرحله دوم وجود دارد . (9 سال پیش)

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .