【Objective-C】1.oc点语法】的更多相关文章

OC基础语法已经全部学完,但是这些知识只是最基础的,还有很多高级知识,这个可能需要后面慢慢的去学习才能体会到.接下来我会总结前面的OC基础语法,如果大家发现有什么不正确的地方,请指正,小弟是新生,多请OC老鸟来喷~~ 试题如下: 1.将包含以下三个字符串@“1hello“,@“2word“,@”3good“的数组改写为字典,数字部分作为key,英文部分作为value.(15) 2.建立一个数组对象,使用3个不同的方法,使其引用计数增加为4,输出这个值,然后保证内存能够正确释放.(15) 3.使用…
OC点语法和变量作用域 一.点语法 (一)认识点语法 声明一个Person类: #import <Foundation/Foundation.h> @interface Person : NSObject { int _age;//默认为@protected } - (void)setAge:(int)age; - (int)age; @end Person类的实现: #import "Person.h" @implementation Person - (void)set…
OC点语法和变量作用域 一.点语法 (一)认识点语法 声明一个Person类: 1 #import <Foundation/Foundation.h> 2 3 @interface Person : NSObject 4 { 5 int _age;//默认为@protected 6 } 7 8 - (void)setAge:(int)age; 9 - (int)age; 10 11 @end Person类的实现: 1 #import "Person.h" 2 3 @imp…
A.OC弱语法 1.在运行的时候才会检查方法的声明和实现 2.没有声明只有实现的方法也能正常运行,只要在调用之前定义即可 3.类的声明必须存在,否则会出现运行时错误   B.类方法 1.是类名调用的方法 2.使用加号修饰的方法 3.类方法和对象方法可以重名 4.对象方法和类方法都允许多次声明,都不允许多次定义 5.类方法不能访问实例变量   #import <Foundation/Foundation.h> @interface Person : NSObject - (void) test;…
在Java中,我们可以通过"对象名.成员变量名"来访问对象的公共成员变量,这个就称为"点语法".比如: 1.在Student类的第2行定义了一个公共的成员变量age 1 public class Student { 2 public int age; 3 } 2.然后在第5行通过点语法直接给stu的成员变量age赋值 1 public class Test { 2 3 public static void main(String[] args) { 4 Studen…
一 OC语法 1.关键字 基本上所有关键字都是以@开头,比如: @interface , @implementation, @end, @public, @protected, @private 2.字符串以@开头 比如 @"hello"是OC中的字符串,而"hello"是C中的字符串. 3.其他语法 1) 基本数据类型:  char , int , float, dobule, BOOL(YES/NO) 2) nil : 相当于C语言中的NULL,也就是0 3)…
1.类 1)根类:因为类 NSObject 是层次结构的最顶层,因此称为根类. 可以将类称为子类(subclass)和父类(superclass),也可以将类称为子类和超类. 2)分类/类别(category):允许以模块的方式向现有类定义添加新的方法(默认不能添加实例变量).扩展自己或他人以前实现的类,使它适合自己的需要. 分类的名称括在类名之后的一对圆括号"( )"中. @interface QCStudent (Print) @end @implementation QCStud…
1:分类的使用场景:想对一个类,扩充一些功能,而又不改变原来类的模型,也不用继承,这时OC中的特有语法:分类可以做到: 当然分类也是一个类,也需要声明和实现,声明在.h文件中,实现在.m文件中,格式如下 // 声明 @interface  类名  (分类名称) @end // 实现 @implementation 类名 (分类名称) @end 2:分类的好处,当一个类比较庞大时,不同的部分可以放到不同的分类中,也方便团队中类的开发: 3:分类使用注意: a:分类不能增加成员变量,只能对原类增加方…
一.点语法 1> 基本使用 点语法本质上是set方法/get方法的调用 2> 使用注意 若出现在赋值操作符的右边,在执行时会转换成get方法 若出现在赋值操作符的左边,在执行时会转换成set方法 不能在set.get方法中用self使用点语法,会造成死循环 二.property和synthesize关键字 1> @property 作用 ① 自动生成某个成员变量的set方法和get方法 使用注意 ① 只能出现在@interface中 ② 可以使用逗号运算符为多个同类型的成员变量生成set…
iOS开发高级语法之分类,拓展,协议,代码块详解 一:分类 什么是分类Category? 分类就是类的补充和扩展部分 补充和扩展的每个部分就是分类 分类本质上是类的一部分 分类的定义 分类也是以代码的形式保存在文件中 分类文件命名 主类类名+分类类名 分类文件也分为*.h文件和*.m文件 *.h文件存放分类的声明部分内容 @interface 主类类名(分类类名) //添加方法声明 @end .m文件存放分类的实现部分内容 @implementation 主类类名(分类类名) //添加方法实现…
一.OC简介 1.简介 它是C语言的基础上,增加了一层面向对象语法 OC完全兼容C语言 可以在OC代码中混入C语言代码,甚至是C++代码 可以使用OC开发mac OS X平台和IOS平台的应用程序 2.关键字 1> 基本上所有的关键字都是以@开头 2> 关键字 @interface.@implementation.@end @public.@protected.@private.@selector @try.@catch.@throw.@finally @protocol.@optional.…
最近想学习object-c了自己上网找了一些资料自学了一下:oc中的点语法是为了java.c等的程序员更好的上手而添加的功能. 主函数 // // main.m // OcTest1 // // Created by WildCat on 13-7-22. // Copyright (c) 2013年 wildcat. All rights reserved. // #import <Foundation/Foundation.h> #import "Student.h"…
使用"点语法" Person *p =[Person new]; //点语法 //对象.属性名 //注意,此时 (p.age)并不是直接方法实例对象 //而是xcode可能到点语法(p.age)后,会帮我们自动替换 //p.age --替换--->[p setAge:18] p.age=18; //注意.此处 p.age出现在了等号的右侧 //设计上,当xcode 看到了p.age出行在等号的右侧后 //它会帮我们把p.age---替换成--->[p age]; int a…
m是OC源文件扩展名,入口点也是main函数,第一个OC程序: #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { theme manager @autoreleasepool { NSLog(@"Hello, World!"); } return 0; } 预处理指令import会自动检验头文件有没有被包含过,防止重复包含,NSLOG是日志输出,OC字符串以@开头,自动换行…
一.点语法 (一)认识点语法 声明一个Person类: 1 #import <Foundation/Foundation.h> 2 3 @interface Person : NSObject 4 { 5 int _age;//默认为@protected 6 } 7 8 - (void)setAge:(int)age; 9 - (int)age; 10 11 @end Person类的实现: 1 #import "Person.h" 2 3 @implementation…
m是OC源文件扩展名,入口点也是main函数,第一个OC程序: #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { theme manager @autoreleasepool { NSLog(@"Hello, World!"); } ; } 预处理指令import会自动检验头文件有没有被包含过,防止重复包含,NSLOG是日志输出,OC字符串以@开头,自动换行,int类型的占…
:Obect c 与 c 语言的区别 () 后缀名不一样,C语言是.c 结尾 ,OC 是 .h结尾. () 输出信息不同 C语言是用print() 输出,OC 是用NSLog输出. () NSLog会自动换行,并且还有时间戳输出,二print没有 () 导入声明[文件]不一样 OC 是用import,而C语言是用include : import和 include的区 () Import只导入一次一个文件就不会重复导入,include 可以重复导入同一个文件 :OC创建类的语法 () 类的声明 @…
// // ReViewClass.h // hellowWorld // 本类是oc复习练手类 // Created by hongtao on 2018/3/26. // Copyright © 2018年 hongtao. All rights reserved. // #import <Foundation/Foundation.h> /** OC常量: 头文件里声明常量: extern NSString * const MyOwnConstant; extern NSString *…
看惯了c#的代码再去看Object-C的代码,总感觉有点懵逼,记录下OC的方法用法:   在OC中一个类中的方法有两种类型:实例方法(类似于非静态函数),类方法(类似非静态函数). 实例方法前用(-)号表明,类方法用(+)表明,通过下图可以看到,前面有一个(-)号,说明这是一个实例方法(nil关键字就相当于我们的null). 在OC中,调用一个方法相当于传递一个消息,这里的消息指的是方法名和参数. 所有的消息的分派都是动态的,这个体现了OC的多态性. 消息调用的方式是使用方括号. 如下面的例子中…
1)多线程相关 dispatch_after dispatch_async dispatch_sync dispatch_get_main_queue dispatch_get_global_queue dispatch_time 2)__bridge,涉及到CF与OC的转换 objc_getAssociatedObject objc_setAssociatedObject 3) objc_allocateClassPair objc_registerClassPair 4) class_cop…
1.常见文件扩展名 .c C 语言源文件 .cc..cpp C++ 语言源文件 .m Objective-C 源文件 .mm Objective-C++ 源文件 .h 头文件 .pl Perl 源文件 .o Object(编译后的)文件 .app 可运行的应用程序(相当于 windows 中的 .exe) .dmg OS X 上的光盘文件压缩包(相当于 windows 中的 ISO) .pkg OS X 应用程序安装包(相当于 windows 中的 exe\msi 等) .ipa iOS 应用程…
<span style="font-size:24px;"> 1.方法与顺序无关 2.枚举绑定数据类型 enum { ObjectiveC, Java, Ruby, Python, Erlang }; typedef NSUInteger Language; 3. 属性不用写@synthesize 4.语法简化 4.1 NSNumber NSNumber *value; value = @12345; value = @123.45f; value = @123.45; v…
本文转载Keefo. Objective-C的Object-oriented programming特性提供subclass和category这2个比较非常重要的部分.subclass应该反复被各种编程书籍介绍过.它是oop继承特性的关键语法,它给类添加了延续并且多样化自己的方法.可以说没有继承就没有oop这玩意.而category相对于subclass就不那么出名了.其实category思想出世于smalltalk,所以它不能算是一个新生事物.  先说一下这2个特性最主要的区别.简单可以这么理…
分类 问题 1.什么是分类? 就是把一个类的功能,分出一部分来放在一个独立的文件中 2.分类的语法是什么样的? @interface Person(SuperMan) 3.分类与类是什么关系? 分类依赖类而存在,没有类也就没有分类 4.分类有什么作用? 用于把一个比较庞大的类,分割开来,具有相同功能的方法放到一个分类中 把太多的功能封装到一个类中,导致类文件过于庞大 5.分类中能够像类一样声明成员变量? 不能,分类中不能够定义成员变量 1>.难以维护 2>.难以使用 6.分类中能否访问原类中的…
OC是在运行过程中才会检测对象有没有实现相应的方法,所有编译过程只给出警告:可能找不到对应方法: 如果程序在运行过程中出错,就会出现程序闪退:     类方法:类可以直接调用的方法,相当于java中的静态方法,但是类方法只能类调用,对象无法调用 以+开头的方法都是类方法.   对象方法: 1,以 ‘-’ 开头 2,只能由对象调用 3,对象方法只能调用当前对象的实例变量或成员变量   类方法: 1,以‘+’开头 2,只能由类调用 3,类方法不能调用实例变量或成员变量   可以允许类方法 和 对象方…
OC self = [super init] , 点语法 , @property 构造方法为啥这么写? self = [super init]; [super init] 的结果可能有三种: 第一种: [super init] 初始化成功,这个是最最正常的情况. 第二种: [super init] 初始化失败,我们都知道oc的两步创建,alloc开辟内存空间,init初始化对象,但是init还有另外一个作用,在初始化失败的时候,init方法会返回一个nil.回头行文的最上面,如果self为nil…
1.使用自定义的方法创建get/set方法 Person.h文件: #import <Foundation/Foundation.h> @interface Person : NSObject { int age; } -(void)setAge:(int)newAge;//方法名是setAge: -(int)age;//方法名是age //-(void)setAge:(int)newAge AndNo:(int)no;//方法名是setAge:AndNo: @end Person.m文件:…
#import <Foundation/Foundation.h>#import "Person.h"int main(int argc, const char * argv[]) {#pragma mark -----------------------OC类和对象---------------------------------------------------    /*1 OC-CObjective -- C 简称OC,OC是C语言的扩充,并且OC是iOS和OS…
1.前言 上一篇已经介绍了App Delegate.View Controller的基本概念,除此之外,分别利用storyboard和纯代码创建了第一个Xcode的工程,并对不同方式搭建项目进行了比较.这一篇文章,我准备为大家介绍一下奇葩的Objective-C语言的语法和使用.这篇文章主要讲Objective-C的理论概念. 2.学习目标 2.1 Objective-C语言面向对象的特性 与C++类比学习,声明定义一个MyObject类,并创建这个类的实例. 2.2 Objective-C语言…
内存管理基本原理(最重要) 移动设备的内存极其有限(iphone 4内存512M),每个app所能占用的内存是有限制的(几十兆而已). 当app所占用的内存较多时,系统会发出内存警告,这时得回收一些不需要再使用的内存空间.比如回收一些不需要使用的对象.变量等 管理范围:任何继承了NSObject的对象,对其他基本数据类型(int.char.float.double.struct.enum等)无效,和 java 不一样,oc 开始的时候没有垃圾自动回收机制. OC对象的基本结构 每个OC对象都有自…