سؤال

لدي مشكلة أخرى في نفس الرمز ... أحصل على هذا الخطأ:

طريقة التهيئة -withCharctersnocopy: الطول: Freewhendone: لا يمكن إرسالها إلى كائن مجردة من الفئة NSString_regex: إنشاء مثيل ملموس!

لكني لا أفهم الخطأ أو ما يجب أن أفعله ...

تعديل:

NSString *pageContent = [[NSString alloc] initWithData:pageContents encoding:NSASCIIStringEncoding];
NSString_RegEx *pContent = [[NSString_RegEx alloc] initWithString: pageContent];
هل كانت مفيدة؟

المحلول

أنت ترى هذا لأن NSString عبارة عن مجموعة صفية. انظر مستندات Apple هنا للحصول على شرح عام ، و هنا للملاحظات على وجه التحديد على التصنيف الفرعي NSString. في الأساس ، تعد NSString فئة مجردة بدون طريقة لتخزين الشخصيات ، والمختلف -الأساليب ... جميعها تعيد فئات فرعية ملموسة مختلفة من NSString استنادًا إلى طريقة التهيئة. عادة ، عندما تستخدم NSString ، يكون هذا شفافًا تمامًا. ومع ذلك ، إذا كنت ترغب في فئة NSString الفرعية ، فيجب عليك على الأقل تنفيذ الأساليب الأساسية (الطول ، و- characteratIndex :) بالإضافة إلى أي طرق init التي تريد الحصول عليها (بالإضافة إلى ذلك ، لديك طريقة لتخزين أحرف السلسلة ).

إذا كنت ترغب فقط في إضافة وظائف إلى NSString ، فإن التصنيف الفرعي ليس ضروريًا عادة. أولاً ، يجب عليك التحقق مما إذا كانت الفئة أو وظيفة تعمل على NSString ، أو طريقة على فئة تحتوي على NSString ستعمل بشكل أفضل. على سبيل المثال ، انظر regexkit أو أدوات Google لنظام التشغيل Mac, ، وكلاهما ينفذ دعم التعبير المنتظم باستخدام فئة على NSString.

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