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 ... 
随机推荐
- Enum介绍
			public enum Color { RED, YELLOW, BLUE; } 说明: 使用的是enum关键字而不是class 多个枚举变量之间用 逗号 隔开 枚举变量名大写,多个单词之间用 _ 隔 ... 
- 如何在jsp页面获取系统时间
			<%@ page import="java.util.*"%> //获取系统时间必须导入的 <%@ page import="java.text.*&q ... 
- LeetCode27.移除元素 JavaScript
			给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成 ... 
- Django全面讲解(2/2)
			前戏 Django是Python语言编写的一个全栈式Web框架(其他的还有Tornado,Flask),可帮助我们快速编写一个具有数据库功能,增删改查.后台管理等功能的网站,若不考虑很高的执行速度,去 ... 
- 小程序内嵌H5——判断小程序环境的坑
			现在各种小程序风靡,这边H5的需求还没有搞定,产品又要求做小程序版本,做可以,关键是618前上线,我-- whatever,618要做推广,日期订了,剩下的就只能是排期,定方案,尽可能完成. 最后和产 ... 
- 系统优化怎么做-JVM优化之VisualVM
			大家好,这里是「聊聊系统优化 」,并在下列地址同步更新 博客园:http://www.cnblogs.com/changsong/ 知乎专栏:https://zhuanlan.zhihu.com/yo ... 
- Oracle 体系结构一 概述
			Oracle服务器由两个实体组成:实例和数据库. 实例由内存结构和进程组成. 它暂时存在于RAM和CPU中.当关闭运行的实例时,实例将消失的无影无踪. 数据库由磁盘上的文件组成.不管在运行状态还是停止 ... 
- React Native开发中自动打包脚本
			React Native开发中自动打包脚本 在日常的RN开发中,我们避免不了需要将我们编写的代码编译成安装包,然后生成二维码,供需要测试的人员扫描下载.但是对于非原生的开发人员来说,可能不知如何使用X ... 
- BZOJ1023: [SHOI2008]cactus仙人掌图(仙人掌dp)
			Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 3467 Solved: 1438[Submit][Status][Discuss] Descripti ... 
- 基于DCT的图片数字水印实验
			1. 实验类别 设计型实验:MATLAB设计并实现基于DCT的图像数字水印算法. 2. 实验目的 了解基于DCT的图像数字水印技术,掌握基于DCT系数关系的图像水印算法原理,设计并实现一种基于DCT的 ... 
