سؤال

[ربما أسيء فهم هذا الموضوع برمته، حيث أنني نشأت مع لغات تسمح للمطورين بتجاهل بنية المعالج بشكل كامل تقريبًا، مثل Java، باستثناء بعض الحالات المحددة. يرجى تصحيح لي إذا كان لدي بعض المفاهيم الخاطئة.]

قراءة هنا يبدو أن النصيحة هي استخدام CGFloat بدلاً من Float، على سبيل المثال، لأنه يثبت الكود الخاص بي في المستقبل لبنى المعالجات المختلفة (مقابض 64 بت تطفو بشكل مختلف).على افتراض أن هذا صحيح، فلماذا UISlider, ، على سبيل المثال، استخدام float مباشرة (للقيمة)؟ ألن يكون من الخطأ (أو شيء من هذا القبيل) بالنسبة لي أن أقرأهم float وتحويله إلى أ CGFloat, لأنه على أي حال فإن الكود الخاص بي ليس صحيحًا إذا تغيرت البنية على أي حال؟

هل كانت مفيدة؟

المحلول

CGFloat ما هو الا typedef ل float.وهذا يوفر المرونة ل CGFloat ليكون شيئا مختلفا على الطريق.وهذا هو السبب في أن استخدامه يثبت الكود الخاص بك في المستقبل.يقوم Objective-C بذلك مع العديد من الأنواع، NSInteger مثال آخر.

على الرغم من أنه يمكن استخدامها بالتبادل، إلا أنني أوافق على عدم ظهورها في حالة UISlider أن أبل كانت تطبيق تجريبي.

نصائح أخرى

يعد CGFloat جزءًا من Core Graphics، ويستخدم لأشياء مثل قيم البكسل، والتي تغيرت بشكل كبير على مر السنين (هل هناك أحد هنا من محبي TRS-80؟).لذا، يُنصح باستخدام CGFloat لقيم الرسم المتعلقة بالعرض.

قيمة شريط التمرير ليست مرتبطة بالرسومات.إنه ببساطة من 0.0 إلى 1.0، والذي يمكن التعامل معه بدقة بواسطة تعويم، وربما تعويم 16 بت في ذلك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top