Так что я, кажется, сталкиваюсь с некоторым странным поведением при использовании -sizeWithFont
семейства вызовов методов в зависимости от того, вызываю ли я его на iPhone Simulator или на реальном устройстве.
Достаточно просто, когда получатель вызова метода -sizeWithFont:constrainedToSize:lineBreakMode:
равен nil
, результирующий CGSize
, переданный обратно в симулятор, равен {0, 0}
. Однако на устройстве возвращаемый результат - это то же значение CGSize
, которое я указываю в вызове метода в качестве параметра constrainedToSize:
. См. Следующие операторы журнала:
Simulator:
someString: (null)
someStringSize: {0, 0}
Прибор:
someString: (null)
someStringSize: {185, 3.40282e+38}
Поведение на симуляторе - то, чего я ожидал. Не то чтобы эту проблему трудно обойти, но 1) я немного запутался, почему это семейство функций будет вести себя по-разному на симуляторе и реальном устройстве, и 2) почему вызов метода на nil
получателе возвращает конкретный, детерминированный результат?
Спасибо за любые подсказки или идеи, которые вы, ребята, можете предоставить!
РЕДАКТИРОВАТЬ : Полагаю, я должен упомянуть, что я строю против SDK 3.1.