• Objective-C关于数据处理


       本文介绍如何在Objective-C中操作数据。我们将使用数组、指针、字符串等。 数组是数据项的一个集合,这些数据项叫做元素,我们可以用一个数组索引来引用元素。例如,如果把数字存储在一个名为array的数组中,我们可以使用如下的一个索引数字来访问每个元素:array[0]引用第一个元素,array[l】引用第二个元素’,以此类推。如下的代码创建了一个拥有5个元素的数组,在array[0】中存储了一个值51,然后,显示该值:

    <pre name="code" class="objc">#include <stdio.h>
    int main()
    {
        int array[51];
        array[0] = 51;
        printf("array[0] is %i.
    ", array[0]);
        return 0;
    }


    
        指针是保存数据项在内存中的地址的特殊变量。我们可以使用&运算符把一个名为integer的变量的地址存储到指针中,如下所示:    pointer=&integer
    

    然后,我们可以使用幸pointer像1F面这样来访问integer的值:

    #include <stdio.h>
    int main()
    {
        int integer, *pointer;
        integer=1;
        pointer=&integer;
        *pointer=2;
        printf("The value of the integer is: %i",*pointer) ;
        return 0;
    }


    1.创建NS类对象    要创建以NS为前缀的任何类的对象,我们必须包含Ohjcctive-C Foundation头文件。如果要存Mac上使用Xco de,当创建一个项目的时候,应该确保在New Project页面上选中F'oundation选项。如果在Windows.Linux或UNIX中使用Objective-C,需要如下所示的一个名为GNUmakfile的makefile,它编译一个名为source.m的程序并且创建一个名为app(在Windows下是app.exe)的可执行应用程序:</span></p><pre name="code" class="objc">include$(GNUSTEP_MAKEFILES)/common.make

    TOOL_NAME = app
    app_08JC_FILES = source.m
    include   $(GNUSTEP_MAKEFILES)/tool . make

    在Linux和UNIX中(不包括Windo;ws);我们也必须设置GNUstep环境如下的C shell中做到这点:
    source <GNUstep root>/System/Library/
    Makefiles/GNUstep.csh
    并且我们在Bourne shell中像下面这样来做到这点:
       . <GNUstep root>/System/Library/
    Makefiles/GNUstep.sh

    在大多数UNIX系统中,<GNUste'p root>是/usr/lib/GNUstepo要运行makefile,只要转到带有该makefile的目录(GNUmakefile)并目.输入make,这会在名为obj的一个子目录中创建可执行应用程序。在这个例子中,我们可以通过输入./obj/app来运行该应用程序。

    .2创建数组
        数组是元素的集合(元素可以是任何的Objetive-C类型),可以使用一一个索引值来访问该集合4在下面的任务中,我们声明了’一个拥有5个元素的数组,把值5 l赋给了第一个元素,即array【0】,然后显示该值。创建Objective-C数组
        1)创建一个名为array.m的新程序。

    #import <stdio.h>
    int main ()
    {
    	int array[5];
    	array[0]=51;
    	printf("array[0] is %i.
    ",array[0]);
    	return 0;
    }


        2)在array.m中输入中的代
    码。这段代码创建了名为array的数组,并且
    把array[0】设置为51。
        3)添加代码以显示array[0]中的值)
      4)保存array.m。
      5)运行array.m程序一应该看到如下的

    array[0] is 51

     3.初始化数组,

    当声明数组的时候,我们可以通过把初始化值包含到花括号中,从而初始化数组中的元素的值:

    #import <stdio.h>
    int main ()
    {
    	int array[5]=(92,73,86,57,98,89);
    	printf("The array is %i elements long.",sizeof(array/sizeof(int)));
    	printf("array[0] is %i.
    ",array[0]);
    	return 0;
    }

    4.循环遍历数组

    数组和循环血脉相连。数组保存数据的集合,循环允许我们迭代这样的数组集合,这是计算机所真正擅长做得事。且看下例`

     #improt <stdio.h>
     
     int main()
     {
    	 int student_index,score[5] ={92,73,57,98,89};
    	 float sum=0;
    	 for(student_index=0.sum=0;student_index<5;student_index++)
    	 {
    		 sum+=score[student_index];
    	 }
    	 printf("Ave score is %2.1f",sum/5);
    	 return 0;
     }

    5.创建二维数组

    到目前为止,我们都是使用一维数组,但是,也是可以创建二维数组,既然我们可以想array[elemnet_number]这样访问一个一维数组  例如,如果有一个关于每个学生的三次测验分数的数组,并且想要得到三次测验的每一次的平均分,可以使用一个二维数组。我们使用花括号中的嵌套的列表来初始化for循环来遍历

     #improt <stdio.h>
     
     int main()

    int test_index,student_index, scores[3][5] = { 92 , l3 , 57 * 98 , 89 }, { 88 , 76 , 23 , 9S , 72 }. { 94 , 82 . 63 , 99 , 94 } };

    floot sum;

    for(test_index=O; test_index < 3;test_index++)

    { for (student_index=0, sum=0;student_index< 5; student_index++)

    {

    sum+=scores[test_index][student_index];

    }

    printf("Average for test %i is %2.1f. ",test_index+1,sum/5);}

    
    
    returned 0;
    }
    6使用指针指针保存厂数据项存内存中的地址口我f通过在指针前加上~一个星号(*)来声明它
    int integer, *polnter;
    然后,可以使用&运算符来获取-一个变量杓j内存中的地址并将其赋给指针
    integer =1:
    inter I &integer;
    再次使用星号,我们可以引用指针所指向的数据
    *pointer= 2;
    使用指针

    创建一个名为pointers.m的新程序

     #improt <stdio.h>
     int main()
     {
    int integer,*pointer;
    integer=1;
    pointer=&integer;
    *pointer=2;
    printf("The vaule of the integer is :%i",*pointer);
    return 0;
     }

    运行结果:

    The vaule of the integer is:2



    7
    使用指针数学运算
    我们指向内存中前后连续的项,例如一个数组中的项,我们可以自增或自减指针来指向下一个或前一个项。例如:

    如下实例打印一个数组中的,第一个数字,然后通过自增一个指针,打印出第二个数字:


    8.交换指针和数组

    在Objective-C中,数组名和指针可以以很多种方式相互交换,例如,我们可以创建一个数组,将数组的名称,赋给一个指针,且指针当作数组名称对待:

    double valules[10];

    double *pointer=values;

    pointer[2]=3.14159;

    运行结果

    9.使用字符串

    你可能认为Objective-C带有一个内置的字符串数据类型,就像是内置的字符串数据类型,就像是内置类型float和char一样,但是,事实并非如此。相反,Objective-C使用Foundation类NSString。

    我们首先包含在Foundation类(这意味着必须在Windows/Linux和Unix中使用一个makefile)然后,可以创建类NSString的一个字符对象。和所有的Objective-C对象一样,我们获得了指向对象的一个个指针,并且可以像下面这样初始化字符串:

    #include<Foundation/Foundation.h>

    NSString *helloString=@"Hello there.“;

    引文的文本之前的@符号表示我们要创建一个Objective-C样式的字符串,而不是一个默认的C样式的字符串,(Objective-C字符串中,C字符串构建了更多的功能。)

    10使用枚举

    Objective-C允许我们定义自己命名类型,这种类型叫做枚举类型,包括含了一周的每一天的名称,如下:

    enum day

    {

    Sunday,

    Monday,

    Tuesday,

    Wednesday,

    Firday,

    Saturday,

    };

    然后我们可以把这些值之一赋给该类型的一个变量:

    enum day today=Friday;





  • 相关阅读:
    20135213——信息安全系统设计基础第十周学习总结
    20135213 20135231 信息安全系统设计基础课程第一次实验报告
    20135213——信息安全系统设计基础第九周学习总结
    家庭作业 汇总(更新调整)
    20135213——信息安全系统设计基础第八周期中总结
    家庭作业第三章3.57
    20135213——信息安全系统设计基础第七周学习总结
    20135213——信息安全系统设计基础第六周学习总结
    笔记
    20135213-信息安全系统设计基础第四周学习总结
  • 原文地址:https://www.cnblogs.com/jiahao89/p/5118297.html
Copyright © 2020-2023  润新知