最经典的OC入门文件

前言:xcode开发工具类似于C#的VS开发工具,平常我们最难深入了解的是OC的语法,
Objectvie-c的语法同我们平时见过的C语言,c# java都有着非常大的不同,下文我们将会对两种语言做一个对比


一、进入IOS概念分析

XCode: 一个IDE开发工具,类似于我们常见的VS ELcispe
Objective-c:一门语言,类似c# java c …语言。
Cocoa:一个框架,里面有很多封装好的函数 方法,方便我们快速开发,类似 .net Framework


二、Objective-c(缩写OC) 语法对比分析

OC是C语言的一种扩展

2.1 OC语法中的加号和减号

在函数前面加上一个+或者-号 ,类似于C#定义一个方法的前缀 private public …
例1 :
(返回数据类型)函数名称(参数1数据类型)参数1值的名称, 参数2的数据名称(参数2的数据类型)参数2值的名称


    -(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{
         return YES;
    }
    

private bool application(UIApplication *application ,NSDictionary *launchOptions )
{
return true;
}

例2:
c#
private void test(string var)
{
//执行内容
}
OC


    -(void)test:(NSString)var
    {
          //执行内容
    }


在Objective-c中方法类没有私有和公用的概念,全部都为public类型。
————————————————————–
在OC中 -创建的方法,同我们C#中创建普通的public类相同,但是+号创建的方法,我们使用的时候,不用创建类实例


2.2 OC语法中 中括号的概念

中括号的功能主要起调用方法使用
例:
C#中调用上面的方法
this.test(“testInformation”);
OC中调用方法
[self test:@”testInformation”];

2.3大部分类方法都拥有前缀NS***

NS前缀是由于 当初OC语言是由NextStep功能开发的,所以所有的框架和库都采用NS****命名。
如下:
NSString
NSLog
NSURL
NSImage
NS_ENUM_AVAILABLE_IOS(_ios)
….

2.4 引入其它类的方法

#import
#import 同java里面一致类似于c语言里面的#include
为什么系统里面都使用#import

因为import可以自动帮助用户过滤掉多次引用


2.5 定义一个类的方法

C# 中定义一个操作类
using System;
public class testClass{
private string name=”name”;
private int age =25;
privater decimal getQianBao()
{
return 100000.00;
}

public setInfo(string p1,string p2,string p3)
{

}
}

OC定义一个操作类


   testClass.h
   @interface testClass:NSObject{
         NSString *name;
	 NSInteger *age;
	 -(NSDecimalNumber)getQianBao:;
	  -(void)setInfo:(NSString*)P1 P2Name:(NSString*) P2 P3Name:(NSString*) P3;

   }
   @end

   testClass.m
    #import "testClass.h"
    @implementation testClass
    {
         -(void)init{
	   name =@"linux c";
	   age  =100;
	 }

         -(NSDecimalNumber)getQianBao:{
	     return 10000.00;
	 }

	 -(void)setInfo:(NSString*)P1 P2Name:(NSString*) P2 P3Name:(NSString*) P3{
            
          }
    }
    @end


2.6 一个方法中建立多个参数(在第一行里面已经讲过)

接口中申明的方法
-(void)setInfo:(NSString*)P1 P2Name:(NSString*) P2 P3Name:(NSString*) P3;
类中实现方法:
-(void)setInfo:(NSString*)P1 P2Name:(NSString*) P2 P3Name:(NSString*) P3{

}

2.7如何调用一个类

C#调用一个类
testClass t = new testClass();
t.setInfo(“参数1″,”参数2″,”参数3″);

OC调用一个类
采用上述我们生成testClass类
testClass *t = [[testClass alloc] init];//申明一个类
[t setInfo:@”参数1″ P2Name:@”参数2″ P3Name:@”参数3”]

2.8 特殊数据类型

C#中 var 可以定义任意数据类型
OC中 id 可以定义任意数据类型

2.9 OC中可以将不同的数据类型保存到同一个数组中
NSArray *array = @[@”232323tests”,(float)@”100″,[NSNull null],@”992″];
NSArray *arrList = [[NSArray alloc] initWithArray:array];
NSLog(@”a = %@”,arrList);


3.0 布尔类型

c# 中
bool 包括 true false
OC中
BOOL 类型包含 YES NO

3.1 空值

在C#中,我们采用的是null
OC中我们则采用
nil