当前位置:  开发笔记 > 运维 > 正文

可可还是Objective-C?

如何解决《可可还是Objective-C?》经验,为你挑选了2个好方法。

关于iPhone开发,你现在如何使用Cocoa与纯Objective-C对象.例如,以下是Objective-C:

的NSTimer

的NSString

int,float

NSMutableArray里

但这些是可可:

的UILabel

的UIColor(?)

的UIView

并且要清楚,是吗

Cocoa Touch == iPhone开发

Cocoa == Mac OS X开发



1> dreamlax..:

你有点不对劲.

NSTimer,NSString,NSMutableArray都是Cocoa.int并且float实际上是C,但由于Objective-C是C的严格超集,因此您可以在Objective-C代码中使用它们.

纯Objective-C只需要链接到Objective-C运行时库,而不需要链接到其他框架或库.Cocoa是一个包含NSObject和NSString之类的框架.其他框架,如AppKit,扩展了Cocoa框架.

纯Objective-C中的编码通常意味着从被调用的根对象派生Object而不是NSObject.喜欢的东西@implementation,@interface,@selector等都是Objective-C的扩展到C和这些才是在所有的Objective-C源是共同的,纯粹与否.如果你想用纯Objective-C编写代码,你不能使用除你自己的对象之外的任何东西Object.

#import 


sebnow:Objective-C运行时库libobjc确实定义了一个Object类.它在中声明.

2> sebnow..:

正如已经指出的那样,NS*类实际上是Cocoa,而不是Objective-C.Objective-C是一种语言,而Cocoa是一个框架(OpenStep的一个实现).这个框架可以被认为是C++的"stdlib"等价物.UI*类是Cocoa Touch,另一个为iPhone创建的框架.

至于最后一个问题,是的,Cocoa Touch仅适用于iPhone.Cocoa适用于Mac OS X开发.但是,如上所述,Cocoa是一个OpenStep实现.存在Cocoa的替代品,例如GNUstep和Cocotron.这些替代框架允许在多个平台上使用相同的代码.OpenStep框架不仅适用于Mac OS X开发,也适用于Linux和Windows.

另一件需要注意的是,其他Objective-C运行时是不同的.没有单一的Objective-C规范.该移植对象编译器尚未这样做的另一种方式.由于苹果的Objective-C的主要用户,而且它控制着可可,它认为是事实上的Objective-C实现.


我不确定你是什么意思.Objective-C是C的超集,Cocoa/Cocoa Touch是Objective-C之上的框架.我想这是C> Objective-C> Cocoa/Cocoa Touch.
推荐阅读
低调pasta_730
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有