Objective-C NSString基本使用 类方法 self关键字
NSString基本使用
#import <Foundation/Foundation.h>
int main() {
//最简单的创建字符串的方式
NSString *str = @"大武汉";
NSLog(@"我在%@", str);
//另一种创建字符串的方式
int age = ;
int no = ;
NSString *name = @"黄祎a";
NSString *newStr = [NSString stringWithFormat : @"My age is %i and My no is % i and My name is %@", age, no, name];
NSLog(@"---------%@", newStr);
//获取字符串的长度
int size = [name length];
NSLog(@"名字的长度是%i", size);
return ;
}
类方法
#import <Foundation/Foundation.h> @interface Person : NSObject
+ (void) test;
@end @implementation Person
+ (void) test {
NSLog(@"hello world");
}
@end int main() {
[Person test];
return ;
} /*
对象方法
以 - 开头 <只能>由对象调用
对象方法可以使用成员变量
相对而言效率低 类方法
以 + 开头 <只能>由类调用
类方法不能使用成员变量
相对而言效率高 一个类中允许出现对象方法名 = 类方法名
*/
self关键字
#import <Foundation/Foundation.h>
@interface Person : NSObject {
@public
int _age;
}
- (void) show;
- (void) test1;
- (void) test2;
@end
@implementation Person
- (void) show {
NSLog(@"Person的年龄是%i", _age);
}
- (void) test1 {
int _age = ;
NSLog(@"Person的年龄是%i", _age);
}
- (void) test2 {
int _age = ;
NSLog(@"Person的年龄是%i", self->_age);
}
@end
int main() {
Person *p = [Person new];
[p show];
[p test1];
[p test2];
return ;
}
//当成员变量和局部变量同名 采取就近原则 访问的是局部变量
//用self可以访问成员变量 区分成员变量和局部变量
/** 使用细节 **/
//出现的地方: 所有OC方法中(对象方法|类方法) 不能出现在函数中
//作用: 使用'self->成员变量名'访问当前方法调用的成员变量; 使用'[self 方法名]'用来调用方法(对象方法|类方法)
/** 常见错误 **/
//用self去调用函数
//类方法中使用self调用对象方法 对象方法中使用self调用类方法
//self死循环
Objective-C NSString基本使用 类方法 self关键字的更多相关文章
- Objective C NSString 编码成URL 特殊字符处理
找了一下网上的教程都是使用类似以下代码,Xcode提示这个CoreFoundation不受ARC管理,所以折中的方式是添加__bridge. NSString *encodedValue = (__b ...
- OC的特有语法-分类Category、 类的本质、description方法、SEL、NSLog输出增强、点语法、变量作用域、@property @synthesize关键字、Id、OC语言构造方法
一. 分类-Category 1. 基本用途:Category 分类是OC特有的语言,依赖于类. ➢ 如何在不改变原来类模型的前提下,给类扩充一些方法?有2种方式 ● 继承 ● 分类(Categor ...
- objective C中的字符串NSStirng常用操作
objective C中的字符串操作 在OC中创建字符串时,一般不使用C的方法,因为C将字符串作为字符数组,所以在操作时会有很多不方便的地方,在Cocoa中NSString集成的一些方法,可以很方便的 ...
- IOS中把字符串加密/IOS中怎么样MD5加密/IOS中NSString分类的实现
看完过后,你会学到: 1学习IOS开发中的分类实现, 2以及类方法的书写, 3以及字符串的MD5加密/解密. ---------------------------wolfhous---------- ...
- [Objective-c 基础 - 2.5] NSString
1.NSString基本使用 使用%@占位符输出对象 ; ; NSString *str2 = [NSString stringWithFormat:@"My age is %d and n ...
- ios开发ios9新特性关键字学习:泛型,逆变,协变,__kindof
一:如何去学习?都去学习什么? 1:学习优秀项目的设计思想,多问几个为什么,为什么要这么设计,这么设计的好处是什么,还能不能在优化 ,如何应用到自己的项目中 2:学习优秀项目的代码风格,代码的封装设计 ...
- 字符串NSString与NSMutableString常用方法
NSString 1.初始化 NSString *str1 = @"a OC Program"; 2.初始化 NSString *str2 = [[NSString alloc] ...
- C#中子类对基类方法的继承、重写和隐藏
提起子类.基类和方法继承这些概念,肯定大家都非常熟悉.毕竟,作为一门支持OOP的语言,掌握子类.基类是学习C#的基础.不过,这些概念虽然简单,但是也有一些初学者可能会遇到的坑,我们一起看看吧. 子 ...
- iOS9新特性之常见关键字
/* nullable:1.怎么使用(语法) 2.什么时候使用(作用) nullable作用:可能为空 nullable 语法1 @property (nonatomic, strong, nulla ...
随机推荐
- async--ajax异步传输
如图:轨迹点组编号依赖所属路口的设置. 所以ajax是异步执行,获取到所属路口还没执行完,就已经执行到根据所述路口获取轨迹点组编号,所以获取不到轨迹点组编号. async:false改成同步执行.就没 ...
- springmvc和easyui使用ajax前台后台互传数据,假删除提示警告问题。
前台 //删除 多/单条数据 function del(cid){ var id=''; if(cid=='-1'){ if(getSelections().length > 0){ id=ge ...
- CopyOnWriteArrayList介绍
CopyOnWrite容器即写时复制的容器.通俗的理解是当我们往一个容器添加元素的时候,不直接往当前容器添加,而是先将当前容器进行Copy,复制出一个新的容器,然后新的容器里添加元素,添加完元素之后, ...
- 陈正冲老师讲c语言之内存的申请malloc() 和释放free()
1.如何使用 malloc 函数 不要莫名其妙,其实上面这段小小的对话,就是malloc的使用过程.malloc是一个函数,专门用来从堆上分配内存.使用malloc函数需要几个要求: 内存分配给谁?分 ...
- java连接linux的三种方式(附执行命令)
# 本地调用使用JDK自带的RunTime类和Process类实现 public static void main(String[] args){ Process proc = RunTime.get ...
- easyui 上 datagrid 的表头的checkbox全选时 取消选中 disabled的checkbox
业务需求: 正常情况下,easyui的全选checkbox会选择表中全部的checkbox包括行.及时对checkbox加了disable属性也没有效果.但是现在的业务是当对checkbox加了dis ...
- input 输入的一些限制说明
input输入框 只能输入 数字可以有小数点 <input class="form_text" id="purchasePrice" name=" ...
- Systemd简介与使用
按下电源键,随着风扇转动的声音,显示器上开启的图标亮起.之后,只需要静静等待几秒钟,登录界面显示,输入密码,即可愉快的玩耍了. 这是我们大概每天都做的事情.那么中间到底发生了什么? 简单地说,从BIO ...
- JSP/Servlet开发——第十一章 Ajax交互扩展
1. jQuery实现Ajax的方法: ●除了$.ajax()方法以外,jQuery还提供了其他多种更简单的 Ajax 实现方法,如$.get().$.post().$.getJSON().对象.lo ...
- canvas 将html绘制图片 生成图片链接
废话不多说,直接上代码 其中图片地址换成你的,自己玩儿去吧 <!DOCTYPE html> <html> <head> <meta charset=" ...