Я заметил, что readInBackgroundAndNotify увеличивает retainCount fileHandle на 1.
Как это, вероятно, должно быть частью детали реализации ... вы спрашиваете filehandle
для эффективного планирования в фоновом режиме, так что, если данные должны были прибыть, они будут уведомлять.
Обратите внимание, что retainCount
бесполезен;в этой ситуации он мог бы увеличиться на 5 или 42.Это не имеет значения.Суть в том, что вы просите его сделать что-то в фоновом режиме, и до тех пор, пока не будет достигнуто состояние «прекратить делать вещи в фоновом режиме», объект, вероятно, все еще будет живым.
Следовательно, когда я выпускаюэтот дескриптор файла, когда я закончу чтение данных, память не освободится.
Вы сказали дескриптору файла прекратить чтение в фоновом режиме?Может быть, это close
?Если нет, то, скорее всего, он продолжится.
Разница между iOS 4 и 5 заключается в том, что может существовать логика, когда дескриптор файла отмечает, что больше нет наблюдателей и, таким образом, прекращает чтение автоматически.Опять же, деталь реализации, на которую не стоит рассчитывать.