لماذا يجد التحقق من UigesturerEcognizer عليه على iPhone OS 3.0 ، عندما تم تقديمه في 3.2؟

StackOverflow https://stackoverflow.com/questions/3695404

سؤال

أنا أستخدم UigesturerEcognizer لأول مرة وأريد أن يعمل تطبيقي على iOS 3.0 فصاعدًا. نظرًا لأن Apple تنص بوضوح على أن المكتبة متوفرة في iOS 3.2 وبعد ذلك استخدمت الرمز التالي:

// Make sure that Gesture recognition technology is supportted by the device SDK version
if ([UIGestureRecognizer instancesRespondToSelector:@selector(initWithTarget:action:)])
{
    [self initGestureRecognizers];
}

من المثير للدهشة أنه عندما أقوم بتشغيل التطبيق على الهدف الوحيد الذي لدي ، والذي يعمل SDK3.0 ، فإنه يعمل بشكل جيد.


استبدلت الشرط إلى ما يلي:

if ([[[UIDevice currentDevice] systemVersion] compare:@"3.2"] != NSOrderedAscending) 
{ 
    [self initGestureRecognizers]; 
}

أحب الحصول على تعليقات حول هذا الموضوع.

شكرًا

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

المحلول

هذا ربما لأن UigesturereCognizer كان يعتبر خاصًا قبل 3.2. لا تفاجأ إذا كانت بعض الأشياء عربات التي تجرها الدواب أو لا تعمل تمامًا كما هو متوقع إذا كنت تستخدم UigesturerEcognizer تحت 3.0.

نصائح أخرى

هناك الكثير من واجهات برمجة التطبيقات غير الموثقة في كل إصدار iOS ، وتذكر Apple هذا. ومع ذلك ، فإن استخدام واجهات برمجة التطبيقات غير الموثقة هذه هو أسباب لرفض متجر التطبيقات. قد يكون هناك خطر من الرفض من استخدام واجهة برمجة التطبيقات التي لا تتمتع بموثوقية في إصدار/مراجعة من نظام التشغيل ، ولكن موثق في آخر ، وكلاهما يدعم تطبيقك.

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