MonoTouch 1.4
Table of contents
Important Changes in this Release
MonoTouch Improved Startup Times
Startup times have been dramatically decreased. The time reduction is anywhere from 60% to 40% depending on your application.
The MonoCatalog sample application went from 8.3 seconds on startup to 4.5 on an original iPhone on a cold start (this sample application does load a lot of NIB files on startup and does no attempt to delay-load any of the NIB files, so it is an example of a badly behaved app).
Applications that have been tuned can get the first UIView up in 1.2 seconds on 3GS.
Reduced Application Sizes
MonoDevelop Performance Improvements
In some difficult-to-reproduce cases the MonoDevelop editor would be extremely slow on first use. This has been fixed, and MonoDevelop editor speed should now be normal for all users.
Enhanced Debugging Experience
We fixed dozens of usability problems in the MonoTouch debugger and MonoDevelop that have been reported since we first unveiled the debugging support.
Debugging Support for Core Libraries
Binding Generator Support for Events
Binding Generator Support for Unsafe Code
The binding generator now supports the -unsafe flag for code that needs to do pointer arithmetic.
Configurable NRGCTX Trampolines
In addition to a leak in the RGCTX trampoline reuse handling, we also made it possible to configure the number of generic trampolines for generics-heavy users.
You can create more trampolines by modifying your project options "iPhone Build" section. You want to add extra arguments for the Device build targets:
-aot "nrgctx-trampolines=2048"
The default number of trampolines is 1024. Try increasing this number until you have enough for your usage of generics.
AudioToolbox Low-Level APIs have been bound.
The low-level APIs from AudioToolbox have been bound:
- AudioFile: To decode and encode audio files.
- AudioSource: for callback-based encoding and decoding of audio files.
- AudioFileStream: To progressively decode audio files.
- AudioQueue: for recording and playing back audio from raw audio data:
- OutputQueue for playback.
- InputQueue for recording.
API Breaking Changes
API Additions:
- Bindings for NSNetService and NSNetServiceBrowser.
- Bindings for CGDataProvider
- New CGImage overloads that can consume CGDataProvider instances.
- Added ReaderWriterLockSlim to MonoTouch API profile.
- The NSKeyedArchived and NSKeyedUnarchiver got .NET style event handling.
- Added NetworkReachability that takes IPAddress parameters in addition to hosts
Samples
- The reachability sample has been completed.
- New StreamingAudio sample streams audio from an HTTP url using the new low-level AudioToolbox API bindings.
- New Google Analytics Sample.
Fixes
- Fixed major issue with events in UIAccelerometer, and a bunch of other UIKit classes where the managed proxy could get GC'd and remove the event handler.
- Fixed #553164 - MKMapView.SelectedAnnotations throws an InvalidCastException
- Fixed #555420 - Cannot create ABAddressBook on iPod Touch
- Fixed #557610 - P/Invoke calls on a 3G didn't always emit proper interwork code with thumb
- Fixed #554701 - NSString comparisons use value equality of the underlying string now
- Fixed #554768 - DrawString (..., RectangleF, ...) variants crashed on device.
- Fixed #548491 - mdb files being copied to app in release mode
- Fixed #551624 - mdb files missing from xcode project export
- Fixed MPMediaPickerControllerDelegate to actually be a [Model]
- Fixed export to Xcode with debug builds
- Tag page
- What links here
[MISSING: skin.common.header-gallery-count]
| Images 0 | ||
|---|---|---|
| No images to display in the gallery. |