`

object-c 基本语法

 
阅读更多

类型:

NSString

NSInteger

NSLong控制台输出

 

NSObject:对象

比较两个对象是否相等:

 

  1. NSObject *object1 = [[NSObject alloc] init];  
  2. NSObject *object2 = obejct1;  
  3. if([object isEqual:object2])  
  4. {  
  5.     NSLong(@"is equal");  
  6. }  
  7. else  
  8. {  
  9.     NSLong(@"is not equal");  
  10. }  

 

 

判断一个string是否为空:

  1. NSString *shortString  = @"HelloWorld";  
  2. if([shortString lengtg] == 0)  
  3. {  
  4.     NSLong(@"is empty string");  
  5. }  
  6. else  
  7. {  
  8.     NSLong(@"is not empty string ");  
  9. }  

 

循环结构,比如for:

 

  1. int increment = 0;  
  2. for (increment = 0; increment < 100; increment++)  
  3. {  
  4.     NSLog(increment++);  
  5. }  

 

 

-(void) method : (int) arguments;

-为方法类型 +表示类方法

 

-(id) initWithAge:(int) _age identify:(int)_identify

方法名称为initWithAge,第一个参数是(int) _age,第二个参数是(int)_identify

identify其实是对_identify的一个说明,initWithAge对_age一个说明

 

方法的调用:

1.[类名或对象名 方法名];

2.对象名.方法名

 

  1. NSString *s;  
  2. s = [[NSString alloc] initWithString:@Hello iphone4S];  
  3.   
  4.   
  5. Person *person = [Person alloc];  
  6. person = [person init];  
  7.   
  8. -(id) initWithAge:(int)_age identify:(int) _identify  
  9. {  
  10. if(self = [super init])  
  11. {  
  12. age = _age;  
  13. identify = _identify;  
  14. }  
  15. return self;  
  16. }  
  17.   
  18. NSLog(@"self class is : %@", [self class]);  

 

@class 和import的区别

@class只是用到了声明,如果需要用到这个class里面的方法,还需要import,通常在.h文件里面只需要@class,.m文件里面需要import

 

oc里面不需要get说明,直接使用:

 

多个成员变量可以不写get和set,使用property(list) names

@implementation Person

@synthesize myNumber

@end

调用的时候:

NSLog(@"Person number : %d",[person myNumber]);

 

还有个@property(nonatomic) int number

atomic是多线程的一个保护技术

 

重载:

定义一个同名的新方法,新方法必须具有相同的返回类型,并且参数的个数和重载的方法相同

 

class里面的权限控制:

同时也具有public protected private,oc也是单继承

 

 

成员变量的new是这样的:

  1. Person *person = [[Person alloc] init];  

 

但是对应的需要在return之前使用:

  1. [pool drain]或者[pool release];  

 

drain用于清除pool中对象,release用来释放内存 

比如可以这样[person release]

 

方法调用:

[实例 方法]

[类名 方法]

完整的方法调用格式为:

[接收方 名字1:参数1 名字2: 参数2 名字3: 参数3 ...]

 

oc运行在一个方法调用中嵌套另一个方法调用,比如:

  1. [NSString stringWithFormat:[test format]];  

 

另外还有一单,self类似this,可以使用self调用本类中的方法:

  1. -(BOOL) isQualified  
  2. {  
  3. return ([self age] > 21);  
  4. }  

 

输入输出,和c差不多,也有scanf,输出用NSLog(),占位符前面需要加上@,如果是oc内置类型,比如NSString需要这样:%@

 

id类型和class的简单使用:

 

typedef:

c是一样的

typedef int myInt

myInt age;

 

 

BOOL类型

YES、NO

 

选择器SEL

P44 用到再说

 

 

创建一个类

 

静态成员变量与类方法

static int intY;

+(int) staticIntY

就像上面所写的,需要使用“+”来声明类方法

 

变量的存储类型:

1、auto、自动局部变量,是缺省设置

2、const

3、volatile,这个修饰符刚好和const相反,它明确地告诉编译器,该变量的值 会发生改变,他用来修饰被不同线程访问和修改的变量

 

定义@property修饰符来设置成员变量的get和set

修饰符可以是:

 

实现一个例子P119

 

MyClass.h:

  1. //  
  2. //  MyClass.h  
  3. //  test  
  4. //  
  5. //  Created by Dawn on 13-5-27.  
  6. //  Copyright (c) 2013年 zeng. All rights reserved.  
  7. //  
  8.   
  9. #import <Foundation/Foundation.h>  
  10.   
  11. @interface MyClass : NSObject{  
  12.     int intValue;  
  13.     float floatValue;  
  14. }  
  15.   
  16. @property int _intValue;  
  17. @property (copy) NSString *name;  
  18. @property float floatValue;  
  19. @property (readonly, getter = getANickname) NSString *nickname;  
  20.   
  21. @end   

 

MyClass.m:

  1. //  
  2. //  MyClass.m  
  3. //  test  
  4. //  
  5. //  Created by Dawn on 13-5-27.  
  6. //  Copyright (c) 2013年 zeng. All rights reserved.  
  7. //  
  8.   
  9. #import "MyClass.h"  
  10.   
  11. @implementation MyClass  
  12.   
  13. @synthesize _intValue = intValue, name;  
  14.   
  15. // 这条语句不是必须的  
  16. @dynamic floatValue;  
  17.   
  18. -(float) floatValue{  
  19.     return floatValue;  
  20. }  
  21.   
  22. -(void)setFloatValue:(float)aValue{  
  23.     floatValue = aValue;  
  24. }  
  25.   
  26. -(NSString *)getANickname{  
  27.     return @"Lee";  
  28. }  
  29.   
  30. @end  

 

main.m:

  1. //  
  2. //  main.m  
  3. //  test  
  4. //  
  5. //  Created by Zeng on 13-5-24.  
  6. //  Copyright (c) 2013年 zeng. All rights reserved.  
  7. //  
  8.   
  9. #import <Foundation/Foundation.h>  
  10. #import "YourClub.h"  
  11. #import "Membership.h"  
  12. #import "MyClass.h"  
  13.   
  14.   
  15. int main(int argcconst char * argv[])  
  16. {  
  17.     NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];  
  18.    
  19.     MyClass *class1 = [[MyClass alloc] init];  
  20.     [class1 set_intValue:1];  
  21.     [class1 setName:@"Sam"];  
  22.     [class1 setFloatValue:1.1f];  
  23.       
  24.     NSLog(@"intValue is %i, name is %@, floatValue is %g, nickname is %@", [class1 _intValue], [class1 name], [class1 floatValue], [class1 getANickname]);  
  25.       
  26.     [class1 release];  
  27.       
  28.     [pool release];  
  29.     return 0;  
  30. }   

 

         在object-c 2.0中,在.h文件中使用@property来标识属性(一般是实例变量);在实现文件中(也就是扩展名为.m的文件),使用@synthesize标识所声明的属性,让系统自动生成设置方法和获取方法。

 

声明一个多参数的方法:

MyClass.h:

  1. //  
  2. //  MyClass.h  
  3. //  test  
  4. //  
  5. //  Created by Dawn on 13-5-27.  
  6. //  Copyright (c) 2013年 zeng. All rights reserved.  
  7. //  
  8.   
  9. #import <Foundation/Foundation.h>  
  10.   
  11. @interface MyClass : NSObject{  
  12.     NSString *name;  
  13.     int age;  
  14. }  
  15.   
  16. @property (nonatomiccopy) NSString *name;  
  17. @property (nonatomicint age;  
  18.   
  19. -(void) setName:(NSString *)theName andSetTheAge: (int) theAge;  
  20.   
  21. @end  

 

MyClass.m:

  1. //  
  2. //  MyClass.m  
  3. //  test  
  4. //  
  5. //  Created by Dawn on 13-5-27.  
  6. //  Copyright (c) 2013年 zeng. All rights reserved.  
  7. //  
  8.   
  9. #import "MyClass.h"  
  10.   
  11. @implementation MyClass  
  12. @synthesize name;  
  13. @synthesize age;  
  14.   
  15.   
  16. -(void) setName:(NSString *)theName andSetTheAge: (int) theAge{  
  17.     [self setName:theName];  
  18.     [self setAge:theAge];  
  19. }  
  20.   
  21. @end   

 

main.m:

  1. //  
  2. //  main.m  
  3. //  test  
  4. //  
  5. //  Created by Zeng on 13-5-24.  
  6. //  Copyright (c) 2013年 zeng. All rights reserved.  
  7. //  
  8.   
  9. #import <Foundation/Foundation.h>  
  10. #import "YourClub.h"  
  11. #import "Membership.h"  
  12. #import "MyClass.h"  
  13.   
  14.   
  15. int main(int argcconst char * argv[])  
  16. {  
  17.     NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];  
  18.    
  19.     MyClass *class1 = [[MyClass alloc] init];  
  20.     [class1 setName:@"zengraoli" andSetTheAge:36];  
  21.     NSLog(@"name is %@, age is %i", [class1 name], [class1 age]);  
  22.       
  23.     [pool release];  
  24.     return 0;  
  25. }  
分享到:
评论

相关推荐

    Object-C的语法与Cocoa框架

    **基本语法特点:** 1. **类定义**:在Object-C中,类的定义通常包含接口(interface)和实现(implementation)两部分。接口部分声明了类的属性和方法,而实现部分则包含了方法的具体实现。 ```objective-c @...

    Object-C的语法与Cocoa框架_V1.0_ios_base32u_

    Object-C是苹果公司为Mac OS X和iOS操作系统开发的应用程序编程语言,它是C语言的超集,融入了Smalltalk的面向对象特性。了解Object-C的基础语法和Cocoa框架对于开发苹果平台的应用至关重要。 **一、Object-C语法...

    基于Object-C语言实现列表选择(项目源码).rar

    Object-C语言基础: 学习Object-C语言的基本语法和特性,了解Objective-C编程范式和iOS开发规范。 列表选择功能实现: 掌握实现iOS应用中列表选择功能的方法和技巧,包括列表的展示、数据的加载和选择状态的管理等...

    Object-C语言教程&案例&相关项目资源

    通过推荐一系列优质的教程资源,包括官方文档、在线教程和权威课程,文章引导读者从Object-C的基本语法、数据类型和控制结构开始,逐步深入面向对象编程的核心概念。这些教程不仅提供了详细的解释和示例代码,还配备...

    如何学习Object-C语言《PDF文档》

    Object-C在C语言的基础上增加了面向对象的特性,因此熟悉C语言的基本语法、控制结构、函数和指针等概念至关重要。要花时间去熟练掌握这些基础知识,因为它们构成了Object-C的基础。 学习Objective-C的类和对象概念...

    如何学习Object-C语言(PDF文档)

    Object-C在C语言的基础上增加了面向对象的特性,因此熟悉C语言的基本语法、控制结构、函数和指针等概念至关重要。要花时间去熟练掌握这些基础知识,因为它们构成了Object-C的基础。 学习Objective-C的类和对象概念...

    如何学习Object-C语言

    Object-C在C语言的基础上增加了面向对象的特性,因此熟悉C语言的基本语法、控制结构、函数和指针等概念至关重要。要花时间去熟练掌握这些基础知识,因为它们构成了Object-C的基础。 其次,学习Objective-C的类和...

    Object-C语言详细学习教程 入门攻略整理面试.docx

    Object-C语言教程知识点目录 1.Object-C概述 ...掌握Object-C的基本特点和优势,为后续学习打下基础。 第二章:开发环境安装与配置 重点详细内容知识点总结 Xcode:Apple官方提供的集成开发环境(IDE),

    Object-C语言教程

    Object-C,全称Objective-C,是一种基于C语言的面向对象编程语言,主要用于Apple的iOS和macOS平台开发。它在C语言的基础上添加了Smalltalk风格的消息传递机制,使得对象间的交互更加灵活。本教程将深入探讨Object-C...

    Object-C语言教程-提供了 Objective-C 的基本语法和一些示例,希望能够帮助你快速入门 Objective-C

    #### 二、Objective-C的基本语法 ##### 1. 类与对象 Objective-C的核心概念之一就是类和对象。类定义了对象的属性和行为。在Objective-C中,类的定义通常包括两个部分:接口(interface)和实现(implementation)。 -...

    Object-C语言教程.docx

    《Objective-C语言教程》是一份面向iOS和macOS应用开发的教程,旨在帮助用户从零开始学习...理解基础语法:掌握Objective-C的基本语法结构和编程范式。 开发iOS/macOS应用:学会使用Objective-C开发iOS和macOS平台的

    Object-C的语法与Cocoa框架V1.0.pdf

    ### Object-C的语法与Cocoa框架详解 ...通过以上的详细介绍,我们可以了解到Object-C的基本语法以及如何使用Cocoa框架进行开发。无论是对于初学者还是有一定经验的开发者来说,了解这些基础知识都是至关重要的。

    Object-C语言教程:基础语法与iOS/OS X应用开发入门指南

    内容概要:本文详细介绍了Object-C这门基于C语言的面向对象编程语言的特点与核心概念,覆盖了从定义、语法基础到开发环境搭建、面向对象编程特征及内存管理等方面的内容。重点讲述了类、对象、继承、封装、多态的...

    Object-C语言教程0220.zip

    这份"Object-C语言教程0220.txt"文件很可能会详细讲解上述知识点,包括语法示例、实践案例以及可能的编程挑战,帮助学习者逐步掌握Object-C语言。通过学习,你可以创建功能丰富的iOS和macOS应用程序,参与到Apple...

    iPhone笔记-Object-c基础

    【Object-c基础详解】 在Objective-C(Object-c)编程中,它是Apple的Cocoa和Cocoa Touch框架的基础,...Object-c虽然语法相对繁琐,但它提供了强大的动态特性和面向对象特性,为iOS和macOS应用开发提供了强大支持。

    Object-C 基础语法中文版

    ### Object-C 基础语法中文版 #### 开始吧 **下载这篇教学** 所有这篇初学者指南的原始码都可以由objc.tar.gz下载。这篇教学中的许多例子都是由Steve Kochan在他的书《Objective-C Programming》中撰写的。如果你...

    Object-b资源:利用Object-C语言编写的计数程序

    在IT行业中,Object-C是一种基于C语言的面向对象编程语言,主要被苹果公司用于开发iOS和macOS的应用程序。这个“Object-b资源:利用Object-C语言编写的计数程序”显然是一个教学或示例项目,旨在帮助开发者了解如何...

Global site tag (gtag.js) - Google Analytics