Android与IOS开发对照(一)

去年自学了ios,由于之前一直从事android开发的工作,所以在此将ios和android做一个在开发上对照的比较,本文将以代码示例讲解为主。

第一篇:经典的Hello,world

//示例1.1
OC
#import<Foundation/Foundation.h>
int main(int argc,const char *argv[]){
NSLog(@"Hello,World");
return (0);
}

JAVA
public static void main(String args[]){
System.out.println("Hello,World");
}

可以看到代码都很类似,只是有细微差别:
import语句
OC:与C语言一样,OC使用头文件来包含结构体,符号常量和函数原型等元素的声明。
在C语言中用#include语句来通知编译器查询头文件中相应的定义代码。在OC中也可以使用#include来达到同样的目的,不过开发中可能永远不会使用#include,而是使用#import。#import是由Xcode使用的编译器提供的,Xcode在编译OC,C,C++程序时都会使用它。#import可保证头文件只被包含一次,无论此命令在该文件中出现了多少次。
JAVA:import与OC使用的方法类似,只是使用import的时候不需要加#号,且java中没有include关键字。在java的Hello,world这个示例中,是不需要import任何头文件的。

NSLog()和System.out.println()的比较和说明
这里重点说一下NSLog(),这个函数的作用类似于C语言的printf();
接受一个字符串作为其第一个参数,该字符串可以和printf()一样包含格式说明符比如%d,此函数会接受与格式说明符相比配的其他参数,在输出之前会把这些参数插入到第一个字符串参数中。
eg: NSLog(@"%d,world",hello);
NSLog()与printf()的区别在于它还添加了一些特性,比如时间戳,和自动附加换行符等,所以在OC开发中,更建议使用NSLog()函数。
既然讲到了NSLog()函数,就在这里展开一下:
NS前缀
苹果公司将Cocoa,Carbon,QuickTime和OpenGL等技术作为框架集来提供。
这里重点说下Cocoa,Cocoa由Foundation和Application Kit框架组成,此外还有一套支持型框架,包含了Core Animation和Core Image。
Foundation框架处理的是用户界面之下的那些层的特性,比如数据结构和通信机制。是IOS开发的核心框架,个人理解就像用JAVA开发Android程序离不开java.lang。
Cocoa给其所有函数,常量和类型名称都添加了NS前缀,这个前缀告诉我们这个框架来自Cocoa而不是其他工具包,前缀能避免命名冲突。(NS前缀的来历要追溯到此工具包被称为NextSTEP的时候,当时它是NeXT Software公司的产品,具体可自行了解下苹果公司历史,在此不做展开)
回到Hello,world示例1.1上
OC中,NSLog(@”Hello,World”);中的@符号是OC在标准C语言基础上添加的特性之一。@符号意味着引号内的字符串应作为Cocoa的NSString元素来处理。
那么什么是NSString?去掉NS前缀,会看到一个熟悉的术语:String。它和C和JAVA中的String一样,代表一串连续可被计算机理解的字符,简称字符串。
NSString和C中的String的区别在于其多集成了OC独有的一些特性,比如:
告诉它的字符串长度是多少
将自身与其它字符串进行比较
将自身转换成整型值或浮点值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值