Guido Van Hoecke <gui...@gmail.com> writes:

> Guido Van Hoecke <gui...@gmail.com> writes:
>
>> Guido Van Hoecke <gui...@gmail.com> writes:
>>
>>> Following method crashes on iPad.
>>
>> The problem might be related to the size of the font. The same code
>> works fine on iphone, but of course uses a smaller fint there. (The game
>> draws a character in an 8x8 grid, which means cell size and thus font
>> size is much smaller on iphone)
>
> The ipad runs ois 5.1.1, the iphone runs 7.0.4
>
> This may also be important in pinpointing the bug.

I filed a bug report at
https://bugzilla.xamarin.com/show_bug.cgi?id=17691

Guido

>
> Guido
>
>>>
>>>     private void DrawChar (CGContext g, RectangleF frame, string c, 
>>> StateType state)
>>>     {
>>>       var h = Convert.ToInt32 (frame.Height * .8);
>>>       var s = new NSString (c);
>>>       var size = MCiOS.TextSize (UIFont.BoldSystemFontOfSize (h), 
>>> c.ToString ());
>>>       var p = new PointF (frame.X + (frame.Width - size.Width) / 2, frame.Y 
>>> + (frame.Height - size.Height) / 2);
>>>       var font = UIFont.BoldSystemFontOfSize(h);
>>>       Debug.Assert(font != null, "Failed to get font of size " + h);
>>>       s.DrawString (p, new UIStringAttributes {
>>>         Font = font,
>>>         ForegroundColor = _textColors [(int)state],
>>>       });
>>>     }
>>>
>>> The 'Font = font' line is painted green.
>>>
>>> Initially I did not use the intermediate variable but changed the code
>>> so that I could check on the font being null. Turns out it isn't: I get
>>> {Helvetica-Bold 56}. 
>>>
>>> The details of the exception seem to indicate that it really crashes
>>> inside MonoTouch:
>>>
>>> System.ArgumentNullException: Argument cannot be null.
>>> Parameter name: key
>>>   at MonoTouch.Foundation.DictionaryContainer.SetNativeValue 
>>> (MonoTouch.Foundation.NSString key, INativeObject value, Boolean 
>>> removeNullValue) [0x0002f] in 
>>> /Developer/MonoTouch/Source/maccore/src/Foundation/.pmcs-compat.DictionaryContainer.cs:343
>>>   at MonoTouch.UIKit.UIStringAttributes.set_Font (MonoTouch.UIKit.UIFont 
>>> value) [0x00000] in 
>>> /Developer/MonoTouch/Source/monotouch/src/UIKit/.pmcs-compat.UIStringAttributes.cs:78
>>>   at XOOX.Classes.PuzzleView.DrawChar (MonoTouch.CoreGraphics.CGContext g, 
>>> RectangleF frame, System.String c, StateType state) [0x000ad] in 
>>> /Users/guivho/Mono/XOOX/XOOX/Classes/PuzzleView.cs:332
>>>   at XOOX.Classes.PuzzleView.DrawCell (RectangleF frame, System.String c, 
>>> TrailType trail, StateType state, System.Collections.Generic.List`1 dots) 
>>> [0x00066] in /Users/guivho/Mono/XOOX/XOOX/Classes/PuzzleView.cs:294
>>>   at XOOX.Classes.PuzzleView.DrawPuzzle () [0x00163] in 
>>> /Users/guivho/Mono/XOOX/XOOX/Classes/PuzzleView.cs:163
>>>   at XOOX.Classes.PuzzleView.Draw (RectangleF rect) [0x00002] in 
>>> /Users/guivho/Mono/XOOX/XOOX/Classes/PuzzleView.cs:112
>>>   at at (wrapper managed-to-native) 
>>> MonoTouch.UIKit.UIApplication:UIApplicationMain (int,string[],intptr,intptr)
>>>   at MonoTouch.UIKit.UIApplication.Main (System.String[] args, 
>>> System.String principalClassName, System.String delegateClassName) 
>>> [0x0004c] in 
>>> /Developer/MonoTouch/Source/monotouch/src/UIKit/.pmcs-compat.UIApplication.cs:38
>>>   at XOOX.Application.Main (System.String[] args) [0x00008] in 
>>> /Users/guivho/Mono/XOOX/XOOX/Main.cs:15
>>>
>>> Is there some way I can prevent this error from happening?
>>>
>>>
>>> Guido
>>>
>>> --
>>> The way I understand it, the Russians are sort of a combination of evil and
>>> incompetence... sort of like the Post Office with tanks.
>>>             -- Emo Philips
_______________________________________________
MonoTouch mailing list
MonoTouch@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/monotouch

Reply via email to