您的位置:首页 > 移动开发 > IOS开发

OC学习日记01

2016-07-29 17:07 405 查看
于我们推迟几个星期开课,在闲余时间我把发下来的C先自己看了一遍。之前大一学的C,过了两年左右,很多细节的地方都忘了,这次自学梳理可以说把一些细节重新记了起来。而且由于结合了IOS看,也掌握了一些新的小知识。IOS开发是以OC语言为基础的,而OC语言又是以C为基础的,所以C的基础是非常重要的。

第一天开课,我也是实在没想到老师以迅雷不及掩耳的速度讲了6章的书,很多没有基础的同学可能学不过来,幸好我有自己花时间去看,还勉强跟得上。

总结一下第一天讲的内容:

一、讲述了OC语言的基本数据类型。

OC语言的数据类型其实主要常用的跟C是差不多的,无非是整型,浮点型,字符型,字符串,数组,值得注意的是OC里面没有多维数组,但是也可以多层数组嵌套来实现相应功能。OC除了自定义结构体,里面还多了一点系统定义好的一些结构体,如NSRange(表示范围),CGPoint(表示一个点的坐标),CGSize(表示宽高),CGRect(前两者的结合体,因为确定了中心点坐标和两边的宽和高,所以可以用于定义一个图案),其实这些结构体看似多和复杂,我们其实是可以通过按住commond键再去用鼠标点击,看里面关于这个结构体的说明(这个需要有C语言的基础才可以看懂),这样我们就不会怕记不住这么多系统自定义的结构体。

以下是代码




二、讲述了OC语言的程序结构

OC的程序结构无非是顺序结构、分支条件结构,循环结构,跟C可以说是完全一样,所以这部分有C基础的可以说秒懂,开始学的人,我认为主要还是熟悉下C为主。

//

//  main.m

//  oc_001

//

//  Created by ibokan2 on 16/7/29.

//  Copyright (c) 2016年 RICK_Liu. All rights reserved.

//

#import <Foundation/Foundation.h>

enum Weekdays{

    Monday, //0

    Tuesday,//1

    Wednesday,//2

    Thursday,//3

    Friday,

    Saturday,

    Sunday,

};

typedef enum {

    Red,

    Orange,

    Yellow,

    Green,

    Blue,

    Dian,

    Purple

}Color;

//程序的入口,一个程序有且只有一个main函数

int main(int argc,
const char * argv[]) {

    @autoreleasepool {

        //输出语句

        NSLog(@"Hello, World!");

        

        //oc中常用的数据类型,NS

        NSInteger age = 25;
// 整型

        NSUInteger age1=25;
//无符号整型,大于0的整型

        CGFloat score=3.141592635;
//浮点型

        NSRange range;    //表示范围的结构体

        CGPoint point;   //坐标点  CGPoint=x+y;

        CGSize size;   //宽高 CGSize=width+height;

        CGRect rect;   //NSRect=CGPoint+CGSize;

        NSString *string=@"My name is Rick";

        char c=[string characterAtIndex:3];

        NSLog(@"%@,Hello everybody",string);

        NSLog(@"c=%c",c);

        NSLog(@"%.4f",score);

        /*

         常用的格式化表示符

         %d 整形

         %f 浮点型

         %m.nf 浮点数(保留n位小数)

         %c 字符

         */

       
//在OC里面,没有多维数组,只有数组嵌套数组,要求数组里面每一个都是对象

        NSArray *array=@[@1,@2,@3,@4];

        NSDictionary *dictionary=@{@"name":@"Rick",@"age":@25};

        NSDate *date= [NSDate date];//美国日期

        NSData *data=[NSData data];//二进制数据

        //NSURL
网址

        //NSOperationQueue
线程

        // NSThread 
线程

        //dispatch_async(<#dispatch_queue_t queue#>, <#^(void)block#>)
线程

        /*

         1.以字母、下划线开头,中间可以包含数字,但是不能以数字开头;

         2.可以使用美元符号开头($),但是不建议;

         3.见名知意;

         4.不可以使用系统保留字;

         */

        NSInteger xxx;

        NSInteger value1;

        NSInteger valuevalue;

        NSInteger _value;

       // NSInteger 2value;(x)

       /*

        OC语言中的程序结构

        1.顺序结构:从上而下,按代码逐步执行;

        2.分支结构:根据条件的不同,执行不同的程序语句;if语句
switch case语句

        3.循环结构:在特定的条件下,重复执行代码若干次

        */

        /*

         

         分支结构    if语句 switch case语句

         if(表达式){

         语句块

         }

         

         if(表达式){

         语句块

         }

         else{

         语句块

         }

         

         if(表达式){

         语句块

         }

         else if(表达式){

         语句块

         }

         */

        if (3<4) {

            NSLog(@"条件成立");

        }

        if (/* DISABLES CODE */ (3)>4)
{

            NSLog(@"条件成立");

        }

        else {

            NSLog(@"条件不成立");

        }

        NSInteger a=5;

        if(a>4  &&  a<=6){ 
// ||非   &&与

        NSLog(@"a在[4,6]范围内");

    }

    else if (a>6&&a<=10){

        NSLog(@"a在[6,10]范围内");

    }

    else{

        NSLog(@"a > 10");

    }

    /*

     switch算法结构

     switch(表达式){

     case 整型常量值1;

     语句块

     break;

     case 整型常量值1;

     语句块

     break;

     case 整型常量值1;

     语句块

     break;

     }

     */

        switch(1){

            case 1:

                NSLog(@"Monday");

                break;

            case 2:

                NSLog(@"Tuesday");

                break;

            case 3:

                NSLog(@"Wednesday");

                break;

            case 4:

                NSLog(@"Thursday");

                break;

            case 5:

                NSLog(@"Friday");

                break;

            case 6:

                NSLog(@"Saturday");

                break;

            case 7:

                NSLog(@"Sunday");

                break;

            default:break;

        }

//        枚举是一个被命名的整型函数的集合

        enum Weekdays day;

        day = Monday;

        switch (day) {

            case Monday:

                NSLog(@"Monday");

                break;

            case Tuesday:

                NSLog(@"Tuesday");

                break;

            case Wednesday:

                NSLog(@"Wednesday");

                break;

            case Thursday:

                NSLog(@"Thursday");

                break;

            case Friday:

                NSLog(@"Friday");

                break;

            case Saturday:

                NSLog(@"Saturday");

                break;

            case Sunday:

                NSLog(@"Sunday");

                break;

            default:

                break;

        }

        Color chooseColor = Yellow;

        switch (chooseColor) {

            case Red:

                NSLog(@"Red");

                break;

            case Orange:

                NSLog(@"Orange");

                break;

            case Yellow:

                NSLog(@"Yellow");

                break;

            case Green:

                NSLog(@"Green");

                break;

            case Blue:

                NSLog(@"Blue");

                break;

            case Dian:

                NSLog(@"Dian");

                break;

            case Purple:

                NSLog(@"Purple");

                break;

            default:

                break;

        }

//        四则运算

        char opr ;

        NSInteger value11;

        NSInteger value12;

        NSInteger result;

        NSLog(@"请输入运算符:");

        scanf("%c",&opr);

        if(opr=='+'|| opr=='-'|| opr=='*'|| opr=='/'){

            NSLog(@"请输入两个整数:");

            scanf("%ld%ld",&value11,&value12);

            switch (opr) {

                case
'+':

                    result=value11+value12;

                    break;

                case
'-':

                    result=value11-value12;

                    break;

                case
'*':

                    result=value11*value12;

                    break;

                case
'/':

                    if(value12 ==
0){

                        NSLog(@"除数不能为0");

                        break;

                    }

                    result = value11/value12;

                    break;

                default:

                    NSLog(@"no match");

                    break;

            }

            NSLog(@"%ld",result);

            return
0;

        }else {

            NSLog(@"请输入正确的运算符!");

        }

    return 0;

  }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  IOS OC