MonoTouch: CIContext в FinishedLaunching, кажется, приводит к сбою приложения?

Я меняю оттенок изображений в FinishedLaunching() как часть использования настроек внешнего вида. Когда я пытаюсь получить CIContext, приложение разрывается без какой-либо информации о сбое.

Вот код:

        var hueAdjust = new CIHueAdjust() {
            Image = CIImage.FromCGImage(originalImage.CGImage),
            Angle = hue * (float)Math.PI / 180f // angles to radians
        };

        var output = hueAdjust.OutputImage;

        UIImage retVal = null;

        UIGraphics.BeginImageContextWithOptions(originalImage.Size, false, 0);
        using (var c = UIGraphics.GetCurrentContext ())
        {
            //****This next line causes the crash*******
            var context = CIContext.FromContext(c);
            var cgimage = context.CreateCGImage(output, output.Extent);
            retVal = UIImage.FromImage(cgimage);
        }
        UIGraphics.EndImageContext();

        return retVal;

Я тестировал эту настройку на разных этапах жизненного цикла приложения, но, похоже, она всегда мгновенно отключается.


person Ian Vink    schedule 04.08.2012    source источник
comment
это дикий удар в темноте, но имеет ли какое-либо влияние рефакторинг, НЕ использующий оператор using? В идеале не должно, но попробовать стоит   -  person Jason    schedule 05.08.2012
comment
Привет, Джейсон, я попробовал, но все равно вылетает.   -  person Ian Vink    schedule 05.08.2012


Ответы (2)


Спасибо за заполнение отчета об ошибках. Сбой произошел из-за бесконечной рекурсии в FromContext. Однако это не решит вашу первоначальную проблему, поскольку открытый API не существует в iOS (это зависит от OSX).

person poupou    schedule 07.08.2012
comment
Я правильно вас понимаю, когда вы говорите, что вызывали OSX API в iOS через MonoTouch? - person Ian Vink; 07.08.2012
comment
Да. Несколько методов утекли из monomac в MonoTouch (и в настоящее время отображаются автозавершением кода MonoDevelop, поскольку они общедоступны). У нас есть автоматизированные тесты для обнаружения таких случаев, но они были каким-то образом упущены (я рассмотрю это как можно скорее). - person poupou; 07.08.2012

Не знаю, понимаю ли я, что вы пытаетесь сделать, но вот код для изменения оттенка изображения: https://stackoverflow.com/a/11762982/1560797

Я предполагаю, что метод, который вы используете, является ошибкой в ​​​​Monotouch. Я сам попробовал это в демонстрационном приложении, и оно генерирует отчет о сбое на моем устройстве. (Я не совсем умею читать журналы сбоев, поэтому точно не знаю, что происходит). Пожалуйста, сообщите об этом на xamarin

person Theos    schedule 05.08.2012