代码用?,在Objective-C中编译

时间:2011-04-12 07:28:27

标签: php objective-c actionscript-3

所以我开始进入iPhone开发阶段而且我已经开始研究Objective-C并注意到它......很糟糕。最终,有各种奇怪的语法要求,例如:

NSString *city = @"Victoria";

[MyClass myMethod]

这是外星人。语言应该足够聪明,知道如何处理普通变量和字符串。

但是,这是语言,我对此无能为力。所以,我的主要问题是:有没有办法用PHP / AS3 / C#或其他一些普通语言编写我的代码然后编译或转换为合法的Objective-C?我打算使用AS3,但目前不支持像Camera这样的必要功能。

我知道这是一个奇怪的问题,但是当我需要为Android或Windows 7开发时呢?在失去理智之前,人们可以学到很多语言。我想在7点停下来。

4 个答案:

答案 0 :(得分:3)

我最好写一个真正的答案,而不是在评论中零碎地表达我的想法。

我认为你应该坚持下去,因为对于那些来自Java或.Net或C ++世界的人来说,事情看起来确实有些奇怪。但是,一旦你理解了这个范例,你就会意识到,从OO的角度来看,Java,C ++和.Net只有一半。对于如此小的语言,Objective-C模型非常强大。

根据Smalltalk模型,在真正的OO中,您不会在对象上调用方法,而是向它们发送消息并决定要执行的操作。 C ++样式语言只通过继承提供有限的形式。 Objective-C全面发展。顺便说一句,这就是为什么Objective-C对象上的“调用”方法的语法与普通函数调用不同,这是因为它不是函数调用。

至于语法,你给出的例子是它的方式,因为C样式字符串与NSString完全不同。第一个是指针和一个以空字节结尾的字节序列,第二个是正确的字符串对象。编译器必须能够在不破坏C兼容性的情况下区分这两者。

至于消息传递语法,一开始看起来很奇怪,但是一旦习惯了交错参数,优势就变得很明显了。 Objective-C方法比传统的C语言方法更加自我记录。

Objective-C只有两个主要方面不足(在我看来),缺乏名称空间支持和(在iOS上)缺乏适当的垃圾收集。

答案 1 :(得分:1)

您可以查看MonoTouch:MonoTouch 我能感觉到你,大约一年前我从C#来到Objective C并且学习语法非常痛苦

哦,当然还有Adobe Flash Builder 4.5

答案 2 :(得分:1)

您可以使用C ++为iOS,Android和Windows 7本地编写代码。您在不同平台上可用的库当然会有所不同,但它将是一种通用的语法。

答案 3 :(得分:0)

您无法将代码转换为目标C,但是单声道项目可让您使用c#开发iPhone应用程序this

get it from here