美文网首页
oc的基本语法,类和对象

oc的基本语法,类和对象

作者: 波澜不惊的少年 | 来源:发表于2018-10-28 11:52 被阅读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

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

    相关文章

      网友评论

          本文标题:oc的基本语法,类和对象

          本文链接:https://www.haomeiwen.com/subject/myyptqtx.html