Как я получаю NSArray имен файлов всех файлов в данном каталоге в моем приложении?

Самый устойчивый ответ (т.е. это получает намерение того, что Вы пытаетесь сделать при порождении наименьшего количества ошибок), был бы:

Object.size = function(obj) {
    var size = 0, key;
    for (key in obj) {
        if (obj.hasOwnProperty(key)) size++;
    }
    return size;
};

// Get the size of an object
var size = Object.size(myObj);

существует своего рода конвенция в JavaScript, что Вы не добавляете вещи к Object.prototype, потому что это может повредить перечисления в различных библиотеках. Добавление методов для Возражения обычно безопасно, все же.

Вот обновление по состоянию на 2016 и широко распространенное развертывание ES5 и вне. Для IE9 + и весь другой современный ES5 + способные браузеры, можно использовать Object.keys() , таким образом, вышеупомянутый код просто становится:

var size = Object.keys(myObj).length;

Это не должно изменять существующий прототип, так как Object.keys() теперь встроен.

Редактирование : Объекты могут иметь символьные свойства, которые не могут быть возвращены с помощью метода Object.key. Таким образом, ответ был бы неполным, не упоминая их.

тип Символа был добавлен к языку для создания уникальных идентификаторов для свойств объектов. Основное преимущество типа Символа является предотвращением перезаписей.

Object.keys или Object.getOwnPropertyNames не работает на символьные свойства. Для возврата их, необходимо использовать Object.getOwnPropertySymbols.

var person = {
  [Symbol('name')]: 'John Doe',
  [Symbol('age')]: 33,
  "occupation": "Programmer"
};

const propOwn = Object.getOwnPropertyNames(person);
console.log(propOwn.length); // 1

let propSymb = Object.getOwnPropertySymbols(person);
console.log(propSymb.length); // 2

10
задан RexOnRoids 13 August 2009 в 13:43
поделиться

1 ответ

Если вы хотите, чтобы папка была частью пакета приложений, вам необходимо создать ссылку на папку внутри группы «Ресурсы» вместо группы (она будет отображаться в Xcode как синяя папка, а не как желтая. ).

Для этого вы перетаскиваете папку из Finder и выбираете ссылку на папку при появлении запроса.

Как только вы это сделаете, вы сможете получить содержимое папки примерно так:

NSError *error = nil;

NSString *yourFolderPath = [[[NSBundle mainBundle] resourcePath]
                            stringByAppendingPathComponent:@"YourFolder"];

NSArray  *yourFolderContents = [[NSFileManager defaultManager] 
                                contentsOfDirectoryAtPath:yourFolderPath error:&error];
29
ответ дан 3 December 2019 в 13:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: