[MonoTouch] XCode 4.2
Dean Cleaver
dean.cleaver at xceptionsoftware.com
Mon Oct 31 17:30:27 EDT 2011
Sounds more like VB and late binding.
Dino
-----Original Message-----
From: monotouch-bounces at lists.ximian.com [mailto:monotouch-bounces at lists.ximian.com] On Behalf Of Nic Wise
Sent: Monday, October 31, 2011 4:17 PM
To: info at ploetzeneder-it.com
Cc: monotouch at lists.ximian.com
Subject: Re: [MonoTouch] XCode 4.2
BTW, if you are thinking "thats very different to .NET!" - you are right.
Obj-C is not a method-call model. It's a message passing model. Think of it like this:
.NET:
foo.DoSomething();
// COMPILER (or linker, or runtime) error if the version of the DLL which has foo in it, doesn't have DoSomething()
in Obj-C, you are not calling a method, you are sending a message, so
[foo doSomething];
sends a message to foo, tells it to run doSomething. If it doesn't have a doSomething, you get an exception (kinda) or it calls the "missing method" routine. I think. But the linker doesn't care, nor does the compiler (tho it checks). It's all dynamic at runtime.
On Mon, Oct 31, 2011 at 21:14, Nic Wise <nicw at fastchicken.co.nz> wrote:
> You dont need both installed.
>
> If you make an app with 4.2 (and MT5), it will work just fine on a
> iOS4 (or 3.1.3) device as long as you dont call any methods which are
> not available in the version your user is using.
>
> So lets say you have a class called UIMyCoolView. It has the following methods:
>
> void DoABasicFunction(); (available for 3.0 onwards) void
> DoSomethingSlightlyCooler(); (4.1 onwards) void
> DoSomethingInTheCloud(); (5.0 onwards)
>
> if you call
>
> var coolview = new UIMyCoolView();
> coolview.DoABacicFunction(); // this will work on all devices
> coolview.DoSomethingSlightlyCooler(); // this will crash / throw an
> exception on 4.0 or 3.x, but work on 4.1 or better
> coolview.DoSomethingInTheCloud(); // will cash on 4.x or 3.x, workd on
> 5.x
>
> So, this piece of code is going to be VERY useful to you:
>
> public static bool IsIOS41OrBetter
> {
> get
> {
> string version =
> UIDevice.CurrentDevice.SystemVersion;
>
> string[] versionElements =
> version.Split('.');
>
> if (versionElements.Length > 0)
> {
> int versionInt = 0;
> int minorVersion = 0;
> if
> (Int32.TryParse(versionElements[0], out versionInt))
> {
> if
> (Int32.TryParse(versionElements[1], out minorVersion))
> {
> if (versionInt
> >= 5) return true;
>
> return
> (versionInt >= 4 && minorVersion >= 1);
> }
> }
>
> return false;
>
> }
>
> return false;
>
> }
>
> }
>
> (4.1 is my minimim)
>
> this lets me doing things like this:
>
> public static UIKeyboardType DecimalKeyboardType
> {
> get
> {
> if (IsIOS41OrBetter)
> {
> return
> UIKeyboardType.DecimalPad;
> }
> return
> UIKeyboardType.NumbersAndPunctuation;
> }
> }
>
> UIKeyboardType.DecimalPad only exists in 4.1 or newer.
>
> Does that make sense?
>
> This is why iPod Touch 3rd gen (basically, a 3G without the phone) are
> so valuable - you can keep them on 4.2 for testing, or better yet,
> keep them on 4.0 or 3.1.3 if you need to support that far back.
> Personally, I stop at 4.0 now.
>
>
>
> 2011/10/31 Andreas Ploetzeneder <info at ploetzeneder-it.com>:
>> Hi,
>> how can i make Adhoc distributions for devices with ioS 4 with Xcode
>> 4.2 or can i install it parallel to XCode 4.1
>>
>> --
>>
>>
>>
>>
>>
>> Mit freundlichem Gruß,
>>
>> Andreas Plötzeneder
>> CEO
>> ihr ploetzeneder it-solutions Team
>> Mobile Development – Desktopanwendungen – Webanwendungen
>> Tel: +43 720 30 30 24 10
>> Fax: +43 720 30 30 24 20
>> Email: info at ploetzeneder-it.com
>> web: http://www.ploetzeneder-it.com
>>
>> Der Inhalt dieser E-Mail samt aller Anhänge ist vertraulich und
>> ausschließlich für den Adressaten bestimmt. Wenn Sie nicht der
>> vorgesehene Adressat dieser E-Mail oder dessen Vertreter sind, so
>> löschen sie diese bitte und informieren Sie den Absender. Jede Form
>> der Verbreitung oder Veröffentlichung der E-Mail, sei es in ihrer
>> Gesamtheit oder in Teilen, die nicht ihrem Zweck dient, ist
>> unzulässig. Das Internet kann die Unversehrtheit dieser Mitteilung
>> nicht garantieren. ploetzeneder it-solutions übernimmt daher keine Haftung, falls die E-Mail geändert wurde.
>>
>>
>>
>> _______________________________________________
>> MonoTouch mailing list
>> MonoTouch at lists.ximian.com
>> http://lists.ximian.com/mailman/listinfo/monotouch
>>
>>
>
>
>
> --
> Nic Wise
> t. +44 7788 592 806 | @fastchicken |
> http://www.linkedin.com/in/nicwise
> b. http://www.fastchicken.co.nz/
>
> Nearest Bus: find when the next bus is coming to your stop.
> http://goo.gl/Vcz1p mobileAgent (for FreeAgent): get your accounts in your pocket.
> http://goo.gl/IuBU
> Trip Wallet: Keep track of your budget on the go: http://goo.gl/ePhKa
> London Bike App: Find the nearest Boris Bike, and get riding!
> http://goo.gl/Icp2
>
--
Nic Wise
t. +44 7788 592 806 | @fastchicken | http://www.linkedin.com/in/nicwise
b. http://www.fastchicken.co.nz/
Nearest Bus: find when the next bus is coming to your stop. http://goo.gl/Vcz1p mobileAgent (for FreeAgent): get your accounts in your pocket.
http://goo.gl/IuBU
Trip Wallet: Keep track of your budget on the go: http://goo.gl/ePhKa London Bike App: Find the nearest Boris Bike, and get riding! http://goo.gl/Icp2 _______________________________________________
MonoTouch mailing list
MonoTouch at lists.ximian.com
http://lists.ximian.com/mailman/listinfo/monotouch
More information about the MonoTouch
mailing list