Hello,<br><br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div text="#000000" bgcolor="#ffffff"><div class="im">
    <blockquote><small>            t =
        NSTimer.CreateRepeatingScheduledTimer(1,delegate {</small><br>
      <small>                txtClock.StringValue =
        DateTime.Now.ToLongTimeString();</small><br>
      <small>            });</small></blockquote></div></div></blockquote><div><br></div><div>The problem is that you are starting a timer before the UI has been initialized and the value of the txtClock property has a valid value.   </div>
<div><br></div><div>What happens when you build an object from a NIB file is that:</div><div><br>1. The constructor is called, you can do some bare-bone initialization here.</div><div>2. The NIB is loaded, objects deserialized.</div>
<div>3. AwakeFromNib is invoked (or something like that, I cant remember the method now)</div><div><br></div><div>So none of the properties that are mapped to outlets have valid values until Step 3.   So make sure that nothing touches those fields until then.</div>
<div><br></div><div>Miguel</div><div>initializer your time in the AwakeFromNib override instead, which is when the UI has been loaded.   Before that the txtClock is still null.</div><div><br></div><div>Miguel </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div text="#000000" bgcolor="#ffffff"><div class="im"><blockquote><br>
    </blockquote>
    <br></div>
    I get this error:<br>
    <br>
    <blockquote><small>Unhandled Exception:
        System.NullReferenceException: Object reference not set to an
        instance of an object</small><br>
      <small>  at
        UglyClock.MainWindowController.&lt;AwakeFromNib&gt;m__0 ()
        [0x00000] in &lt;filename unknown&gt;:0 </small><br>
      <small>  at MonoMac.Foundation.NSActionDispatcher.Apply ()
        [0x00000] in &lt;filename unknown&gt;:0 </small><br>
      <small>  at (wrapper native-to-managed)
        object:[MonoMac.Foundation.NSActionDispatcher:Void Apply()]
        (MonoMac.Foundation.NSObject,MonoMac.ObjCRuntime.Selector)</small><br>
      <small>  at (wrapper managed-to-native)
        MonoMac.AppKit.NSApplication:NSApplicationMain (int,string[])</small><br>
      <small>  at MonoMac.AppKit.NSApplication.Main (System.String[]
        args) [0x00000] in &lt;filename unknown&gt;:0 </small><br>
      <small>  at UglyClock.MainClass.Main (System.String[] args)
        [0x00000] in &lt;filename unknown&gt;:0 </small><br>
    </blockquote>
    <br>
    My code was working, so I know the objects are all wired correctly.
    Humm, seems it can&#39;t find txtClock to update this way.  If I change
    the code to this it works great (So, I know the delegate is
    working):<div class="im"><br>
    <br>
                t = NSTimer.CreateRepeatingScheduledTimer(1,delegate {<br></div>
                    Console.WriteLine(DateTime.Now.ToLongTimeString());<br>
                    //txtClock.StringValue =
    DateTime.Now.ToLongTimeString();<br>
                });<br>
    <br>
    You know what could be wrong, sorry I&#39;m a total noob, this is my 3rd
    day trying to use this.<br>
    <br>
    <blockquote style="border:0px none" type="cite">
      <table style="padding-top:5px">
        <tbody>
          <tr>
            <td valign="top"><img src="?ui=2&amp;ik=efd0b8e378&amp;view=att&amp;th=12d6cec791902664&amp;attid=0.0.1.1&amp;disp=emb&amp;zw" name="postbox-contact.jpg" width="29px" height="29px"></td>
            <td style="padding-left:5px" valign="top"><a href="mailto:hazlema@gmail.com" style="color:rgb(0, 136, 204) ! important;text-decoration:none ! important" target="_blank">hazlema</a><br>
              <font color="#888888">January 9, 2011 4:51 PM</font></td>
          </tr>
        </tbody>
      </table>
      <div style="color:rgb(136, 136, 136);margin-left:40px"><br>
        <div>Ahh, ok. Thanks<br>
        </div>
        <hr style="border-width:1px 0pt 0pt;border-style:dotted none none;border-color:rgb(181, 181, 181) -moz-use-text-color -moz-use-text-color;min-height:1px;margin:15px 0pt 0pt"><br>
      </div>
      <table style="padding-top:5px">
        <tbody>
          <tr>
            <td valign="top"><img src="?ui=2&amp;ik=efd0b8e378&amp;view=att&amp;th=12d6cec791902664&amp;attid=0.0.1.2&amp;disp=emb&amp;zw" name="compose-unknown-contact.jpg" width="29px" height="29px"></td>
            <td style="padding-left:5px" valign="top"><a href="mailto:kjpou@pt.lu" style="color:rgb(0, 136, 204) ! important;text-decoration:none ! important" target="_blank">kjpou</a><br>
              <font color="#888888">January 9, 2011 3:33 PM</font></td>
          </tr>
        </tbody>
      </table>
      <div style="color:rgb(136, 136, 136);margin-left:40px"><div class="im"><br>
        Mathew
        <br>
        <br>
        It is not a memory leak.
        <br>
        <br>
        What you have to do is use a NSTimer.
        <br>
        <br>
        NSTimer t;
        <br>
        <br>
                    t = NSTimer.CreateRepeatingScheduledTimer(1,delegate
        {
        <br>
                         txtClock.StringValue =
        DateTime.Now.ToLongTimeString();
        <br>
                    });
        <br>
        <br>
        <br>
        When you use a .net timer it runs outside NSApplication loop. 
        The NSTimer will run within the application loop allowing Cocoa
        to update the field value correctly.
        <br>
        <br>
        I plan on writing an article about that in a couple of days.
        <br>
        <br>
        <br>
        </div><hr style="border-width:1px 0pt 0pt;border-style:dotted none none;border-color:rgb(181, 181, 181) -moz-use-text-color -moz-use-text-color;min-height:1px;margin:15px 0pt 0pt"><br>
      </div>
      <table style="padding-top:5px">
        <tbody>
          <tr>
            <td valign="top"><img src="?ui=2&amp;ik=efd0b8e378&amp;view=att&amp;th=12d6cec791902664&amp;attid=0.0.1.1&amp;disp=emb&amp;zw" name="postbox-contact.jpg" width="29px" height="29px"></td>
            <td style="padding-left:5px" valign="top"><a href="mailto:hazlema@gmail.com" style="color:rgb(0, 136, 204) ! important;text-decoration:none ! important" target="_blank">Matthew Hazlett</a><br>
              <font color="#888888">January 9, 2011 1:52 PM</font></td>
          </tr>
        </tbody>
      </table>
      <div style="color:rgb(136, 136, 136);margin-left:40px"><div class="im"><br>
        
        <br>
        I made a terribly simple application, on the MainWindow I put a
        label then in the code I had it update the label every 1000 of a
        second.<br>
        <br>
                ...<br></div><div class="im">
               Timer t = new Timer(1000);<br></div><div class="im">
                ...<br>
        <br>
                public override void AwakeFromNib ()<br>
                {<br>
                    base.AwakeFromNib ();<br>
                    <br></div>
                    t.Elapsed += delegate {<div class="im"><br>
                        txtClock.StringValue =
        DateTime.Now.ToLongTimeString();            <br></div><div class="im">
                    };<br>
                    <br>
                    t.Start();<br>
                }<br>
        <br>
        But it keeps throwing warning errors at me for every tick, what
        am I missing and how do I fix it?<br>
        <i>2011-01-09 13:47:30.563 UglyClock[79395:7103] ***
          __NSAutoreleaseNoPool(): Object 0x540f80 of class NSCFString
          autoreleased with no pool in place - just leaking</i><br>
        <br>
      </div></div>
    </blockquote>
    <br>
  </div>

<br>_______________________________________________<br>
Mono-osx mailing list<br>
<a href="mailto:Mono-osx@lists.ximian.com">Mono-osx@lists.ximian.com</a><br>
<a href="http://lists.ximian.com/mailman/listinfo/mono-osx" target="_blank">http://lists.ximian.com/mailman/listinfo/mono-osx</a><br>
<br></blockquote></div><br>