سؤال

أحاول أن أفهم كيفية إنشاء شجرة الدليل الخاصة بي والوصول إليها من طلبي.

أقوم بعمل نوع من برنامج التعلم وأريد إنشاء بنية دليل مثل هذا:

-MyLessonsDirectory
--LessonDirectory_1
---Step_1
---Step_2
---Step_3
--LessonDirectory_2
---Step_1
---Step_2
---Step_3
.
.
and so on

في كل "خطوة"-سيكون لدي محتوى محدد لهذه الخطوة من الدرس. يضاف المحتوى من قبلي أثناء التطوير. وبالتالي ، لا أريد إنشاء الهيكل والمحتوى من داخل التطبيق ، فقط الوصول إليه وقراءة محتوى الدلائل. إذا كان بإمكاني إنشاء هذا النوع من الهيكل واستخدامه ، فسيكون من السهل جدًا إنشاء تصميم جميل يجعل من السهل إنشاء دروس جديدة في تطبيقي.

ما لا يمكنني اكتشافه هو المكان الذي يجب أن أقوم فيه بإنشاء هذه الدلائل في بنية الملفات في XCode وما هو الطريق إلى تلك الدلائل من طلبي.

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

المحلول

على iPhone ، يمكنك الوصول فقط إلى أدلة التطبيقات الخاصة. أفضل مكان لوضع أدلة الممارسة في مجلد المستندات في دليل التطبيق.

هذه...

NSString *dp=[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];

... يمنحك المسار إلى مجلد الدليل الذي يمكنك تسليمه إلى NSFileManager.

إذا كنت ترغب في رؤية بنية الدليل بصريًا ، فقم بتشغيل التطبيق على المحاكاة وانظر فيه

~/Library/Application Support/iPhone Simulator/User/Applications

سيكون التطبيق في أحد المجلدات مع اسم Uuid الرطيف. يمكنك رؤية الدلائل والملفات هناك في الباحث.

أود أن أضيف أن iPhone لديه بالفعل معظم الدلائل التي قد تحتاجها عمليا. لديك تفضيلات ، ذاكرة التخزين المؤقت ، TMP ، المستندات وما إلى ذلك في مكانها.

EDIT01:

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

لا يمكنك تغيير بنية الدليل الافتراضي وليس لديك أي تحكم مطلقًا في كيفية تثبيت التطبيق أو الدلائل. لا تحتوي تطبيقات iPhone على ملفات دعم خارجي من أي نوع. كل شيء داخل حزمة التطبيق.

ومع ذلك ، فإن حزمة التطبيق هي في الحقيقة مجرد دليل حتى تتمكن من وضع الأشياء بداخلها ونسخها إلى واحدة من الدلائل الافتراضية في المرة الأولى التي يعمل فيها التطبيق. يمكنك كتابة أي شيء تريده إلى دليل المستندات.

نصائح أخرى

تريد أن تنظر إلى NSFileManager لإنشاء الدلائل:

NSFileManager *fm = [NSFileManager defaultManager];
NSError *error;
BOOL result = [fm createDirectoryAtPath:@"path....." withIntermediateDirectories:YES attributes:nil error:&error];
if(result){
   NSLog(@"success!");
} else {
   NSLog(@"error: %@",error);
}

فيما يتعلق بمكان إنشاء الدلائل ، يمكنك وضعها في ~/Application Support/-اسم التطبيق الخاص بك-هذا هو المكان الذي يجب عليك فيه تخزين بيانات التطبيق الخاصة بك إذا لم يكن المستخدم يحتاج إلى الوصول إليه. خلاف ذلك ، يجب أن تدع المستخدم يقرر مكان حفظه.

- (NSString *)applicationSupportDirectory {

       NSArray *paths = NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, YES);
       NSString *basePath = ([paths count] > 0) ? [paths objectAtIndex:0] : NSTemporaryDirectory();
       return [basePath stringByAppendingPathComponent:@"MyApplication"];
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top