Comparison between monotouch-4.0.3.dll and monotouch-4.0.4.1.dll

Namespace: MonoTouch

Type Changed: MonoTouch.Constants

Removed:

 	public const string Version = "4.0.3";

Added:

 	public const string Version = "4.0.4.1";

Namespace: MonoTouch.Foundation

New Type: MonoTouch.Foundation.ActionAttribute

public sealed class ActionAttribute : ExportAttribute {
	
	public ActionAttribute ();
	public ActionAttribute (string selector);
}

Type Changed: MonoTouch.Foundation.ExportAttribute

Removed:

 public sealed class ExportAttribute : Attribute {

Added:

 public class ExportAttribute : Attribute {
 	public ExportAttribute ToGetter (System.Reflection.PropertyInfo prop);
 	public ExportAttribute ToSetter (System.Reflection.PropertyInfo prop);
 	

Type Changed: MonoTouch.Foundation.NSArray

Added:

 	public static T[] FromArray<T> (NSArray weakArray) where T : NSObject;

Type Changed: MonoTouch.Foundation.NSValue

Added:

 	public string ObjCType {
 		get;
 	}

New Type: MonoTouch.Foundation.OutletAttribute

public sealed class OutletAttribute : ExportAttribute {
	
	public OutletAttribute ();
	public OutletAttribute (string name);
}

Namespace: MonoTouch.GameKit

Type Changed: MonoTouch.GameKit.GKDataEventArgs

Removed:

 	public GKDataEventArgs (MonoTouch.Foundation.NSData data, GKPlayer player);
 	public GKPlayer Player { }

Added:

 	public GKDataEventArgs (MonoTouch.Foundation.NSData data, string playerId);
 	public string PlayerId { } 

Type Changed: MonoTouch.GameKit.GKError

Fixed this enumeration values.

Added:

 	AuthenticationInProgress,
 	UnexpectedConnection

Type Changed: MonoTouch.GameKit.GKMatchDelegate

Removed:

 	public abstract void ConnectionFailed (GKMatch match, GKPlayer player, MonoTouch.Foundation.NSError error);
 	public abstract void DataReceived (GKMatch match, MonoTouch.Foundation.NSData data, GKPlayer player);
 	public abstract void Failed (GKMatch match, MonoTouch.Foundation.NSError error);
 	public abstract void StateChanged (GKMatch match, GKPlayer player, GKPlayerConnectionState state);

Added:

 	public virtual void ConnectionFailed (GKMatch match, string playerId, MonoTouch.Foundation.NSError error);
 	public abstract void DataReceived (GKMatch match, MonoTouch.Foundation.NSData data, string playerId);
 	public virtual void Failed (GKMatch match, MonoTouch.Foundation.NSError error);
 	public virtual void StateChanged (GKMatch match, string playerId, GKPlayerConnectionState state);

Type Changed: MonoTouch.GameKit.GKPlayerErrorEventArgs

Removed:

 	public GKPlayerErrorEventArgs (GKPlayer player, MonoTouch.Foundation.NSError error);
 	public GKPlayer Player {

Added:

 	public GKPlayerErrorEventArgs (string playerId, MonoTouch.Foundation.NSError error);
 	public string PlayerId {

Type Changed: MonoTouch.GameKit.GKStateEventArgs

Removed:

 	public GKStateEventArgs (GKPlayer player, GKPlayerConnectionState state);
 	public GKPlayer Player {

Added:

 	public GKStateEventArgs (string playerId, GKPlayerConnectionState state);
 	public string PlayerId {

Type Changed: MonoTouch.ObjCRuntime.Dlfcn

Added:

 	public static float GetFloat (IntPtr handle, string symbol);

Xamarin Workbook

If it's not already installed, install the Xamarin Workbooks app first. The workbook file should download automatically, but if it doesn't, just click to start the workbook download manually.