سؤال

كنت في السابق باستخدام interwithcontentsofurl لتنزيل مستوطنة في NSDictionary، ولكن هذا معلقة UI عند تشغيل مؤشر الترابط نفسه حتى الآن لقد انتقلت إلى NsurlConnection المشكلة في أنه لم أعد أستطيع الاتصال بطريقة لا يمكن استدعاء الأسلوب لتحديث NSMutableData. ما هي أفضل طريقة لأخذ nsmutabledata ووضعها في nsdictionary؟

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

المحلول

ما تحتاجه هو nspropertylistserialization:

NSDictionary *myDict = [NSPropertyListSerialization propertyListFromData:myData mutabilityOption:NSPropertyListImmutable format:nil errorDescription:nil];

هو أبسط خيار.

نصائح أخرى

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

NSString *s = [[NSString alloc] initWithBytes:[mutableData bytes] length:[mutableData length] encoding:NSUTF8StringEncoding];
NSString *path = NSTemporaryDirectory();
path = [path stringByAppendingPathComponent:@"tmpfile.txt"];
if ([s writeToFile:path atomically:NO encoding:NSUTF8StringEncoding error:nil]) {
    NSDictionary *d = [[NSDictionary alloc] initWithContentsOfFile:path];
}

في اللغة الإنجليزية العادية، قم بإنشاء سلسلة من البيانات المحددة، وكتابة ذلك إلى ملف TEMP، ثم قم بتحميل ملف TEMP في NSDictionary هدف.

هذا الكود بعيد عن الكمال (يحتاج إلى أشياء مثل التحقق من الأخطاء، وما إلى ذلك) ولكن قد تحصل عليك.

التحذير: لقد كتبت برامج الكاكاو لعدة سنوات، لكنني لم أتمس iPhone أبدا، فهذا هو تخمين.

هل لديك nsdictionary لديك بيانات أخرى تحتاج إلى الحفاظ عليها؟

في هذا الصدد: didreceiveresponse: طريقة (مندوب NsurlConnection)، يمكنك نسخ NSDictionary القديم الخاص بك في nsmutabledictionary ثم أدخل بيانات استجابة URL في ذلك أيضا. ثم تحويل nsmutabledictionary إلى nsdictionary جديد.

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