سؤال

أقوم بتطوير تطبيق iPhone، حيث أريد استخدام ملف .plist لحفظ بعض متغيرات التكوين.

في Xcode الخاص بي حيث لإنشاء هذا الملف .plist وكيفية الوصول إليها ؟؟

شكرا،

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

المحلول

سوف تضع في مجلد الموارد. ثم استخدم شيئا مثل هذا لتحميله:

NSString *file = [[NSBundle mainBundle] pathForResource:@"TwitterUsers" ofType:@"plist"];
NSArray *Props = [[NSArray alloc] initWithContentsOfFile:file];

حيث TwitterUsers هو اسم ملف Plist الخاص بك.

إذا كان ملف Plist الخاص بك يحتوي على مفاتيح وقيم، فستحصل على السطر الثاني nsdictionary بدلا من nsarray.

نصائح أخرى

لتخزين الملف Plist في دليل المستندات الخاص بك، سيتعين عليك تضمين ملف Plist في تطبيقك، ثم قم بنسخه أولا في إصدار "دليل المستندات".

للوصول إلى الملف في دليل المستندات:

NSArray *paths = 
NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, 
                                    NSUserDomainMask, YES); 
NSString *documentsPath = [paths objectAtIndex:0]; 

// <Application Home>/Documents/foo.plist 
NSString *fooPath = 
[documentsPath stringByAppendingPathComponent:@“foo.plist”];

أود أن أوصي بحفظه في دليل الموارد في حزمة التطبيق، ولكن يمكنك فقط سحبها في نافذة المشروع. ال NSBundle طريقة pathForResource:ofType: يجب أن تعطيك مسارا، يمكنك المرور NSDictionarydictionaryWithContentsOfFile:.

يحرر: آسف، عينة الكود الكامل (اعتقدت أنني نسخت بالفعل ولصقها):

NSString *path = [[NSBundle mainBundle] pathForResource:@"MyConfig" ofType:@"plist"];
NSDictionary *myConfig = [NSDictionary dictionaryWithContentsOfFile:path];

تعديل حدثت للتو بالنسبة لي "متغيرات التكوين" قد لا تكون ثابتة. إذا كان هذا هو الحال، تجاهل هذه الإجابة.

أود أن أوصي بك استخدام nsuserdefaults. لتخزين متغيرات التكوين بدلا من تدحرج نظامك الخاص.

إذا كنت تعدل .plist داخل حزمة التطبيق الخاصة بك، سوف تخاطر بإبطال التوقيع على الحزمة، بينما لن تنتهي جيدا.

إذا كنت يجب أن تخزن وتعديل الخاصة بك .plist, ، تخزينها في Documents الدليل، الذي هو أيضا حيث يجب على طلبك تخزين أي شيء يقوم بتنزيله، وإنشاء، إلخ. ملف وإدارة البيانات و nsfilemanager..

افتراضيا إذا كنت قد قمت بتضمين المعطر في المشروع في أي مكان (تحت الموارد أو غير ذلك)، فسيقوم XCode بنسخه إلى حزمة التطبيق حيث يمكنك الوصول إليه مع المذكورة أعلاه pathForResource يتصل. اعتقدت فقط أنني ذكر ذلك كما قد تفضل مجموعة من حيث لا تملكها في الموارد ...

يمكنك العثور على مثال SQLite Book ..... تم حفظ ملف بيانات Silte في "مستند" الدليل .... ستعرف PRCESS

  1. لماذا يبطل الحزمة؟

  2. هل سيتم دعم هذا الملف المتشدد في مجلد الموارد في iTunes مثل الملفات في مجلد المستندات؟

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