第一个OC程序

  之前在csdn记录自己学习的一些知识,不过现在我认识到这边有更多的大神,希望可以在这里能学的更多并且与大家分享自己的学习经历,共同进步,废话不多说,开撸开撸。

  Objective-c是一种面向对象的语言,它是基于c语言,在c语言的基础上增加了面向对象的语法。oc中的包含面向对象思想中最精华的部分,语法也十分简练,现在依然是iOS开发的主流语言,当然,swift是将来的潮流。

  Objective-C可以在GCC以及Clang运作的系统上编写和编译,因为GCC与Clang含Objective-C的编译器。unix家族中的操作系统都是支持gcc编译器的,所以在没有OSx的时候可以使用linux或Ubuntu作为oc的开发平台,不过若是想开发iOS应用可就需要安装一个osX了

  我的开发环境是xcode6.1,它所使用的编译器是clang,在其他平台编写的可以查找一下相关的资料,网上也是很多的。

  

//这个是oc中helloworld

#import <Foundation/Foundation.h>

//#import 的作用

//1.能够引入相应的头文件,提供快捷代码提示

//2.能够自动的防止重复引入头文件

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

  

    //NSLog是日志输出函数

            //1.不需要添加 \n换行

            //2.会自动打印一些与系统相关的信息

            //3.拼接字符串需要使用%@占位符号

            //4.Oc中使用的字符串必须使用@""表示

    NSLog(@"Hello World");   

return 0; }

  软件开发是需要规范的,代码写出来不仅仅是为自己看的,更多的是为了别人也能看懂,苹果公司的代码就是十分规范,命名方式一目了然(就是有些长╮(╯▽╰)╭)

我在编写过程中也是一直在仿着官方的代码格式进行编写。

  下面编写一个oc中的类

//IPhone.h

#import <Foundation/Foundation.h> //@interface 类文件的声明开始 //@end类文件的声明结束 //: NSObject 继承的语法,默认所有的类都继承自nsobject基础类 //语法规则 //1.类名命名规则:驼峰命名法,并且首字母必须大写 //2.成员变量:一定要以下划线开头 @interface IPhone : NSObject { @public float _cpu;//用来存储cpu的大小 float _ram;//用来存储内部容量大小 }//专门用来声明成员变量 //-(void)setCpu:(float)cpu; //-(float)cpu; //声明oc中的方法 //1.对象方法 。。只能使用对象(实例变量)调用并且必须以 ‘-’ 号开始声明 //oc中只要是在方法声明中出现的数据类型必须使用()扩住 -(void)aboutMyIPhone; //发送消息 //oc方法声明中有多少参数,就必须对应多少个‘:’ //.h与.m文件之间快速切换 control + com + 上/下 -(void)sendMessage:(char *)content; -(void)sendMessage:(char *)content andPhoneNumber:(char*)phoneNumber; //2.类方法 @end

  .h是用来存放类的声明,.m文件是用来存放类的实现

#import "IPhone.h"
//@implementation 类实现部分的开始
//@end 类实现部分的结束
//.m文件就是用来实现.h文件中声明的一系列类方法作用
@implementation IPhone
//能拷贝不手写@implementation@implementation@implementation
//尽可能使用代码提示功能
//在类的内部可以直接使用成员变量名称去获得成员变量的值
-(void)aboutMyIPhone{
    NSLog(@"my phone cpu %f,ram %f",_cpu,_ram);
}

-(void)sendMessage:(char *)content{
    NSLog(@"%s",content);
}

-(void)sendMessage:(char *)content andPhoneNumber:(char*)phoneNumber{
    NSLog(@"给%s,发送%s",phoneNumber,content);
}
//重写description
//description建议大家在实际开发中,都要重写这个方法,然后将类中有意义的成员变量都打印出来,这样非常方便我们调试程序

-(NSString *)description{
    return [NSString stringWithFormat:@"cpu:%.0f,ram:%.2f",_cpu,_ram];
}

@end

  有了类的声明和实现,我们就可以实例化类了

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

{

 

    @autoreleasepool {

            //nslog

            //1.不需要添加 \n换行

            //2.会自动打印一些与系统相关的信息

            //3.拼接字符串需要使用%@占位符号

            //4.Oc中使用的字符串必须使用@""表示


        //如何创建一个OC对象呢?

        //1.必须调用创建对象的方法 new专门创建对象的方法

        //2.oc只要是调用方法就必须在[]中实现

        
        //phone就叫做实例变量,保存一个对象的指针地址

        //1.开辟内存空间,来存储对象

        //2.初始化成员变量的值

        //3.返回对象的指针地址

        IPhone* phone = [IPhone new];

        

        phone->_cpu = 1.24;

        phone->_ram = 500.0;

     
 //输出实例对象的数据值
    NSLog(@"phone cpu:%.2f,ram %.0f",phone->_cpu,phone->_ram);


  
        //消息机制

        [phone aboutMyIPhone];

  //消息机制是oc中的创新,这个机制使得我们能给对象发送消息

  

  }

  return 0;

}

  

 

posted @ 2015-07-22 09:14  一念寻风  阅读(217)  评论(0)    收藏  举报