Objective-C与C style语言的简单类比
1. 关于Objc中函数调用类比
[_lblHelloWorld setHidden:![_lblHelloWorld isHidden]];
类比为: _lblHelloWorld.setHidden(!(_lblHelloWorld.isHidden()));
Tip: objc中的boolean值为YES和NO,而不是True or False
-(void) helloWorld:(BOOL)isHelloWorld{}
类比为: public void helloWorld(bool isHelloworld){}
Tip: 前面带有减号(-)的方法为实例方法,必须使用类的实例才可以调用。对应的有+号,代表类的静态方法,不需要实例化即可调用
2. 消息:向对象发送消息。
消息是iOS的运行环境特有的几只,和C++和Java上类类似,但机制上有很大的差别。
[object message:param1 withParameter:param2]
NSString *string;
string = [[NSString alloc] initWithString:@“Hello”];
类比为:
object.message()
object.message(param1,param2)
string *str;
string = new string(“Hello”);
3. import方法
#import “Class.h”
#import <Class.h>
#import <director/Class.h>
和C下的include方法相似
4. Property 和 Synthesize
Property定义:@property声明用于自动创建property属性变量的getter和setter
Synthesize定义:@Synthesize声明实现了property属性变量的geetter和setter
例如:
在interface: @property dataType variableName
在implementation: Synthesize variableName
5. 头文件中的方法
-(returnType)method
-(returnType)method:(dataType)param1
-(returnType)method:(dataType)param1 withParam:(dataType)param2
类比为:
returnType method()
returnType method(param1)
retrunType method(param1,param2)
6. 关于self:指向自己的指针
[self method];
类比为: self.method();
7. 继承关系和接口实现
ClassA:PraentA
ClassA:PraentA<Protocol>
ClassA <Protocol>
类比为:
ClassA extends ParentA
ClassA extends ParentA implements interface
ClassA implements interface
8. 空指针
id obj = nil;
NSString *hello = nil;
nil相当于java里的null
9.id:objective-c中的id和C++里的(void*)类似
最新文章
- Java白皮书的关键术语
- 爱上MVC~为Html.EditorForModel自定义模版
- bug0
- 计划将项目中使用entity framework的要点记录到改栏目下
- 从高版本JDK换成低版本JDK报错Unsupported major.minor version 52.0
- cJSON_hacking
- 学习使用:before和:after伪元素
- Hex、bin、axf、elf格式文件小结
- Windows phone 之Socket
- Java Annotation 必须掌握的特性
- jQuery验证框架 .
- php variance
- UNIX基础--用户和基本账户管理
- mysql、mysqli、pdo使用
- .NET 通用高扩展性的细粒度权限管理架构(webApi/Mvc)
- (转)mysql 无法设置外键的原因总结
- putty怎么用?如何使用Putty远程管理Linux主机
- rabbitMQ的安装和配置(一)
- SpringMVC系列之(二) springMVC和Struts异同
- laravel-elasticsearch 全文搜索设置