سؤال

أقوم بإنشاء تطبيق iPhone الذي يجعل iPhone يعمل بمثابة pendrive لمشاركة الملفات السهلة.

في المرحلة الأولى ، لدي بعض الملفات (PNG ، PDF ، JPG ، ZIP) في دليل وجعلتها تعرض في TableView في شكل مجموعة قابلة للتغيير. يعرض في عرض الجدول كما هو موضح أدناه ،

.DS_Store
.localized
gazelle.pdf
Hamburger_sandwich.jpg
IITD TAJ Picture 028_jpg.jpg
iya_logo_final_b&w.jpg
manifesto09-eng.pdf
RSSReader.sql
SimpleURLConnections.zip
SQLTutorial 

أريد فقط عرض اسم الملفات ولا أريد عرض الامتدادات. أعلم أنه من الممكن استخراج ملحقات ملف في NSFileManager. لكني لا أعرف كيف. الرجاء مساعدتي في جعل عرض الجدول الخاص بي يبدو هكذا

.DS_Store
.localized
gazelle
Hamburger_sandwich
IITD TAJ Picture 028_jpg
iya_logo_final_b&w
manifesto09-eng
RSSReader
SimpleURLConnections
SQLTutorial 
هل كانت مفيدة؟

المحلول

انظر إلى وثائق NSString ، ستجد هناك stringByDeletingPathExtension.

الفكرة الأساسية هي أنك لا ترغب في تحديث الكائنات في الصفيف الحالي ، ولكن إنشاء مجموعة جديدة مع أسماء الملفات دون تمديد ، ورمي الصفيف الأصلي بعيدًا.

هذه هي الطريقة التي يمكن القيام بها:

NSArray *stuff = [NSArray arrayWithObjects:@"image1.jpg", @"image2.png", @"image3.tiff", nil];
NSLog(@"input %@", stuff);

stuff = [stuff valueForKey:@"stringByDeletingPathExtension"];
NSLog(@"output %@", stuff);

لا أتوقع منك أن تفهم هذا الرمز ، لذلك إليك نسخة أكثر وضوحًا:

NSArray *stuff = [NSArray arrayWithObjects:@"image1.jpg", @"image2.png", @"image3.tiff", nil];
NSLog(@"input %@", stuff);

NSMutableArray *output = [NSMutableArray array];
for (NSString *filename in stuff) {
    NSString *filenameWithoutExtension = [filename stringByDeletingPathExtension];
    [output addObject:filenameWithoutExtension];
}
NSLog(@"output %@", output);
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top