oc的基本语法,类和对象

2018-10-28  本文已影响0人  波澜不惊的少年

1. 关键字

OC中的关键字基本上所有的都是以@开头,但也有少数不是以@开头的,下面是一些较常用的关键字:

@interface、@implementation、@end @public、@protected、@private、@selector @try、@catch、@throw、@finally @protocol、@optional、@required、@class @property、@synthesize、@dynamic self、super、id、_cmd、__block、__strong、__weak、

2. 字符串以@开头

比如@"Hello"是OC中的字符串,而"Hello"则是C语言中的字符串

3. OC程序的开发过程

OC程序的开发跟C语言类似,从 .m源文件编译成 .o目标文件再链接成 a.out可执行文件

4. 程序框架

OC程序的入口也是main函数

在编写第一个OC程序时用到了OC的输出函数NSLog,但调用NSLog需要包含Foundation框架,OC中一般使用#import <Foundation/Foundation.h>来包含Foundation框架,每个框架都有自己的主头文件:即最主要的头文件。主头文件名字一般跟框架名称一样,包含了框架中的所有其他头文件,Foundation框架的主头文件名称就是Foundation.h,只需要包含Foundation框架的主头文件,就可以使用整个框架的东西。

其中#import的作用:跟C语言中#include一样,用来拷贝某个文件的内容,#import可以自动防止文件内容被拷贝多次,也就意味着头文件中不用加入相应的预处理指令。

#import <Foundation/Foundation.h>

//OC程序的入口:main函数

int main()

{

  //printf("第一个OC程序\n");//OC完全兼容C语言程序  

  NSLog(@"第一个OC程序");  //NSLog输出内容会自动换行

  return 0;

}

5. NSLog与printf的区别

NSLog接收OC字符串作为参数,printf接收C语言字符串作为参数

NSLog输出后会自动换行,printf输出后不会自动换行

使用NSLog需要#import <Foundation/Foundation.h>

使用printf需要#include <stdio.h>

               类和对象

1. 类的设计

在C语言中完整的写一个函数需要函数的声明和定义(也就是实现),而OC中类似,完整的写一个类需要类的声明和实现

类的设计主要包括:类名,属性和行为

设计类名注意点:

  类名的第一个字母必须是大写

  不能有下划线

  多个英文单词,用驼峰标识

instancetype和id的异同:

1、相同点

都可以作为方法的返回类型

2、不同点

instancetype可以返回和方法所在类相同类型的对象,id只能返回未知类型的对象;

instancetype只能作为返回值,不能像id那样作为参数。

Cocoa提供了NSNumber类来包装(即以对象形式实现)基本数据类型。

例如以下创建方法:

+ (NSNumber *) numberWithChar: (char) value;

+ (NSNumber *) numberWithInt: (int) value;

+ (NSNumber *) numberWithFloat: (float) value;

+ (NSNumber *) numberWithBool: (BOOL) value;

将基本类型数据封装到NSNumber中后,就可以通过下面的实例方法重新获取它:

- (char) charValue;

- (int) intValue;

- (float) floatValue;

- (BOOL) boolValue;

- (NSString *) stringValue;

例子:

NSNumber *num = [NSNumber numberWithInt:88];

    NSInteger integer = [num intValue];

5、NSString与NSInteger的相互转换

    NSInteger integerNumber = 888;

    NSString * string = [NSString stringWithFormat:@"%d",integerNumber];

    NSLog(@"string is %@", string);   

    integer = [string intValue];

    NSLog(@"integer is%d", integerNumber);

char  float等类型一样可以转换

---------------------

作者:知行合一100

来源:CSDN

原文:https://blog.csdn.net/totogo2010/article/details/7655908

版权声明:本文为博主原创文章,转载请附上博文链接!

上一篇下一篇

猜你喜欢

热点阅读