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 ...
随机推荐
- Pandas快速入门(深度学习入门2)
源地址为:http://pandas.pydata.org/pandas-docs/stable/10min.html#min Pandas(Python Data Analysis Library) ...
- AutoComplete的使用方法
百度 酷狗,反正使用搜索功能时,都会看到类似于图一这种自动补全的功能,灰常的方便,今天做一个项目,刚好要加这个功能,于是一通百度之后,总算做出来,源代码在文章末尾会提供下载.还有,我这个是参考了网上的 ...
- nodejs中如何连接mysql
nodejs中如何连接mysql,下面给出一个小Demo. 第一步安装mysql模块npm install mysql 第二步导入mysql模块var mysql = require('mysql') ...
- Many-to-many relationships in EF Core 2.0 – Part 3: Hiding as ICollection
In the previous post we ended up with entities that hide the join entity from the public surface. Ho ...
- Linux 文件压缩与解压相关
tar [-cxtzjvfpPN] 文件与目录 .... 参数:-c :建立一个压缩文件的参数指令-x :解开一个压缩文件的参数指令 -t :查看压缩文件里面的文件 特别注意: c/x/t 同时只能存 ...
- Extjs header column 自定义排序规则
Extjs 的表格自带排序功能,这个功能在大部分情况下能够满足我们的需求,但是在某种情况下,例如IP排序,默认情况下,按照字符串进行排序, 此时我们需要自定义排序规则,这个时候就需要我们重写方法了, ...
- 解决ssh连接linux系统特别慢的问题
新安装的centos系统,发现ssh连接很慢,因为是测试环境,对安全的要求不高,所以完全可以更快的连接,下面一起来解决这个问题. 一.分析主要原因: 1.SSH的反向DNS解析会消耗大量时间 2.GS ...
- ABAP术语-Transaction
Transaction 原文:http://www.cnblogs.com/qiangsheng/archive/2008/03/19/1112804.html Logical process in ...
- go加密算法:非对称加密(二)--Hash
关于一些加密算法的应用和信息,可以在以下博客中查找到: https://www.cnblogs.com/charlesblc/p/6130141.html // MyHash package main ...
- Mac下PHP的环境搭建
* 前段时间手欠 ... 入手了一个二手的Macbook pro ! 配置挺高的 16款13寸的基本顶配了 ... 只差 硬盘不是1T的 ... 可以脑补一下配置了* 话说 不是所有程序猿都说 每个程 ...