OC语言(四)
二十八.id类型(万能指针)
- (id)init{
if (self = [super init]){ //先赋值完毕并且判断self的值
//初始化成功
;
}
return self;
}
- (id)initWithName : (NSString*)name{
if(self = [super init]){
_name = name;
}
return self;
}
原则:自己的属性由自己的类来处理,要传递则通过super的构造方法。
/Applications/Xcode.app/Contents/Developer/Library/Xcode/Templates/Project Templates
下存放的就是各个工程的路径。
修改Xcode模板注释
/Applications/Xcode.app/Contents/Developer/Library/Xcode/Templates/File Templates/Source/Cocoa Class.xctemplate/NSObjectObjective-C
三十三.应用分类给NSString加功能
int count = [NSString numberCountOfString:@"abc12345sjai6ais7as8ds9”];
[@"asdasd123" numberCountOfString]
实现方法:
+ (int)numberCountOfString:(NSString *)str{
;
; i < str.length; i++){
unichar c = [str characterAtIndex:i];
if(c >= '0' && c <= '9'){
count++;
}
}
return count;
}
- (int)numberCountOfString{
;
; i < self.length; i++){
unichar c = [self characterAtIndex:i];
if(c >= '0' && c <= '9'){
count++;
}
}
return count;
}
Person *p = [[Person alloc] init];
Class c = [p class];
Class c2 = [p class];
Class c3 = [Person class];
NSLog(@"c1 = %p, c2 = %p, c3 = %p",c,c2,c3);
可以看到三个地址相同,说明都是指向Person类的。
类的加载:load方法是在类加载时调用的方法。
可以发现,先加载父类,再加载子类。
当程序启动时,就会加载一次项目中所有的类(包括分类),类加载完毕后就会调用+load方法
先加载父类、再加载子类。
当第一次使用这个类,会调用+initialize方法(从分类开始找)。
三十五.description方法
- (NSString *)description{
return [NSString stringWithFormat:@"age
= %d, no = %d",_age,_no];
}
这样就可以用%@来打印类内所有内容了。
防止死循环:不要在重写的description里面使用self打印%@。
使用类方法+description:NSLog(@“%@“,[self class]);
但是+的方法默认不返回地址,仅仅返回类名。
%p打印&p为打印对象的真实地址。
三十六.NSLog的使用技巧
OC语言(四)的更多相关文章
- iOS开发-OC语言 (四)数组
知识点 1.NSArray 2.NSMutableArray 1.数组的基本用法: 2.数组的遍历 3.数组排序 =========== NSArray 不可变数组 ============= ...
- OC语言前期准备
OC语言前期准备 一.OC简介 Oc语言在c语言的基础上,增加了一层最小的面向对象语法,完全兼容C语言,在OC代码中,可以混用c,甚至是c++代码. 可以使用OC开发mac osx平台和ios平台的应 ...
- OC语言基础知识
OC语言基础知识 一.面向对象 OC语言是面向对象的,c语言是面向过程的,面向对象和面向过程只是解决问题的两种思考方式,面向过程关注的是解决问题涉及的步骤,面向对象关注的是设计能够实现解决问题所需功能 ...
- OC语言description方法和sel
OC语言description方法和sel 一.description方法 Description方法包括类方法和对象方法.(NSObject类所包含) (一)基本知识 -description(对象 ...
- OC语言-03-OC语言-三大特性
一.封装 1> 封装的定义 隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别 2> 封装的好处 可以通过set方法防止为成员变量设置不合理的值 仅向外部提供公 ...
- 李洪强iOS开发之OC语言基础知识
OC语言基础知识 一.面向对象 OC语言是面向对象的,c语言是面向过程的,面向对象和面向过程只是解决问题的两种思考方式,面向过程关注的是解决问题涉及的步骤,面向对象关注的是设计能够实现解决问题所需功能 ...
- 李洪强iOS开发之OC语言description方法和sel
OC语言description方法和sel 一.description方法 Description方法包括类方法和对象方法.(NSObject类所包含) (一)基本知识 -description(对象 ...
- oc语言学习之基础知识点介绍(二):类和对象的进一步介绍
一.类.对象在内存中的存储 /* 内存分区: 栈:局部变量 堆:程序员自己写代码申请开辟的 程序员自己维护,编译器现在帮我们自动优化了,它在合适的给我们加上了释放空间的语句,所以我们现在写的对象不会造 ...
- oc语言--面向对象的三大特性
一.封装 1.什么是封装 在程序上,隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别:将对象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的 ...
- OC的特有语法-分类Category、 类的本质、description方法、SEL、NSLog输出增强、点语法、变量作用域、@property @synthesize关键字、Id、OC语言构造方法
一. 分类-Category 1. 基本用途:Category 分类是OC特有的语言,依赖于类. ➢ 如何在不改变原来类模型的前提下,给类扩充一些方法?有2种方式 ● 继承 ● 分类(Categor ...
随机推荐
- 安卓高级9 shareSDK 第三方登陆和分享Mob
ShareSDK推荐此官网地址 官网注册和申请key流程 注册 略 进入后台创建应用得到可以 下载SDK 解压下载的压缩包 第三方平台申请key 如果你想申请QQ登陆或者分享需要去腾讯开发者申请,申请 ...
- Dynamics CRM 部署NLB后使用群集名称访问弹验证框验证不过的解决方法
自上次部署NLB到现在已有段时间了,今天部署完后遇到了个问题,上次也遇到过但忘记了,本篇作为对该问题的一个记录,部署文档:https://blogs.msdn.microsoft.com/niran_ ...
- grab window
#include <Windows.h> #include <iostream> using namespace std; #if 0 int CaptureAnImage(/ ...
- springMVC源码分析--AbstractControllerUrlHandlerMapping(六)
上一篇博客springMVC源码分析--AbstractDetectingUrlHandlerMapping(五)中我们介绍了AbstractDetectingUrlHandlerMapping,其定 ...
- Android4.3 屏蔽HOME按键返回桌面详解(源码环境下)
点击打开链接 首先声明我是做系统开发的(高通平台),所以下面介绍的方法并不适合应用开发者. 最经有个需求要屏蔽HOME按键返回桌面并且实现自己的功能,发现以前的方式报错用不了,上网搜索了一下,发现都是 ...
- 用Maven打包成EAR部署JBoss
基于原理的架构里面,考虑这次升级版本,可谓是一步一个脚印的向上走啊,可以说步步为坎,别人的知识,和自己的知识,相差很多啊,什么都懂点,但是具体没有使用,就理解不深刻了,心有余而力不足,所以一切我们自己 ...
- PullToRefreshScrollView 嵌套RecyclerView实现特卖列表倒计时抢购
不久之前,我们谈到了通过Handler与timer及TimerTask结合实现倒计时抢购列表,那个是PullToRefreshListView实现的,今天要讲的是PullToRefreshScroll ...
- UNIX网络编程——UDP 中的外出接口的确定
已连接UDP套接字还可用来确定用于特定目的地的外出接口.这是由connect函数应用到UDP套接字时的一个副作用造成的:内核选择本地IP地址.这个本地IP地址通过为目的IP地址搜索路由表得到外出接口, ...
- Cocos2D中Node的userObject实例变量使用时一个要注意的地方
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 我们知道在Cocos2D中,CCNode对象有一个ivar为us ...
- 07_NoSQL数据库之Redis数据库:Redis的高级应用之事务处理、持久化操作、pub_sub、虚拟内存
事务处理 Redis对事务的支持目前还比较简单.Redis只能保证一个client发起的事务中的命令可以连续的执行,而中间不会插入其他client的命令.当一个client在一个连接中发出mul ...