Здесь я вижу два вопроса: будет ли он каждый раз появляться в одном и том же порядке? И это заказ на вводе заказа?
Он выходит в установленном порядке, который находится в некотором порядке. Обратите внимание, что NSSet - это просто интерфейс, и существуют частные классы, которые реализуют NSSet. Это означает, что в то время как некоторые экземпляры NSSet возвращаются, если вы вызываете allObjects против него, они могут возвращать их в некотором непротиворечивом порядке, почти наверняка в порядке хеширования, поскольку наборы почти повсеместно реализуются как хешированные словари.
Поскольку алгоритм хеширования сильно варьируется в зависимости от того, что хранится и как он хешируется, вы можете «повезти», что он каждый раз выходит в одном и том же порядке, но затем застать врасплох в другой раз, когда что-то очень мало меняется .
Итак, технически это не совсем случайно и может быть в некотором стабильном порядке.
На второй вопрос я бы сказал, что он почти наверняка НЕ в порядке вставки.
Предложение Марка для обработки awakeFromInsert - хорошее, и то, что вы хотели бы.