سؤال

هل هناك طريقة للحصول على طول بالبايت من CFString نظرا ترميز الطابع التعسفي؟ يبدو ممكنا لأن CFStringGetSmallestEncoding وظيفة يجب القيام ببعض العمليات الحسابية بالفعل، لكنني لا أريد أن استخدام أصغر الترميز، أريد لمعرفة كيفية كبيرة عازلة أنا قد تحتاج إلى تخصيص إذا أريد بايت في UTF-8 ترميز أو ربما ترميز الأحرف متغيرة عرض آخر.

هل من الممكن؟ أو هل أنا بحاجة إلى تخصيص الحد الأقصى الممكن حجم المخزن المؤقت باستخدام CFStringGetMaximumSizeForEncoding؟

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

المحلول

هل لديك مؤسسة المتاحة؟ إذا كان الأمر كذلك، هل يمكن أن يلقي CFStringRef إلى NSString * واستخدام lengthOfBytesUsingEncoding:.

ونضع في الاعتبار على الرغم من أن CFStringGetMaximumSizeForEncoding هو O (1)، في حين lengthOfBytesUsingEncoding: هو O (ن) في طول السلسلة (تقومون به أساسا تحويل مرتين)، لذلك قد يكون لا يزال أفضل حالا باستخدام CFStringGetMaximumSizeForEncoding تخصيص منطقة عازلة.

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