MonoTouch 1.2

New Features

  • Debugger, works on Simulator and Device (using Wifi)
  • C# binding generator for Objective-C Libraries.
  • stdout/stderr are now redirected from the device to MonoDevelop.

MonoTouch API additions:

  • UITableView now has a new property "Source" that allows a new UITableViewSource type to be assigned to it, it is a Model that implements both the UITableViewDelegate and the UITableViewDataSource, this should reduce clutter in existing code. Brent has written a detailed update on using the UITableView with this new property.
  • NSTimer.Dispose will now call Invalidate first, and then dispose the timer.
  • UIActionSheet now can be initialized like this:
    • new UIActionSheet ("Title") { "Help", "Open in Browser", "Bookmark" }
  • Added NSKeyedArchiver, NSKeyedUnarchiver.
  • Added Encoder virtual method on NSObject

Mono Runtime API additions:

  • Added System.Timers.Timer
  • Added System.Threading.Semaphore
  • Added System.Threading types to System.dll

API fixes

Updated OpenTK to r2350.

  • This fixes some function overloads so that they're usable
  • Fixed AVAudioPlayer factory methods to be static.
  • Fixed typo in UITableView.DidEndEditing
  • Fixed typo in AVAudioRecorder.Pecord -> Record
  • Fixed BadgeValue to allow null
  • The helper class NSNotificationHandler is no longer public.
  • Flagged a NSString.DataUsingEncoding as Obsolete, introduced instead Encode methods.


A preview of the System.Data and SQLite for MonoTouch is now available.

  • Mono.Data.Sqlite.dll: unchanged. Note that this binding is against SQLite 3.6, while iPhone has SQLite 3.0, so use of some functionality will result in EntryPointNotFoundExceptions. Such missing functionality appears to include DataSet support.
  • Mono.Data.Tds.dll: unchanged.
  • System.Data.dll: Removes code-generation capabilities (System.Data.TypedDataSetGenerator), .config handling support, System.Data.Common.DbProviderFactories, System.Data.OleDb, System.Data.Odbc.
    • System.Data.SqlClient is present.
  • System.Transactions.dll: unchanged.


  • Fixed crash using async socket operations
  • Fixed i18n in mtouch : read the documentation
  • iPhoneOSGameView.Run() will no longer truncate the timeout to have 1ms resolution. It will now have 100ns resolution.