字符串算是OC中非常重要和常用的一部分内容,OC中的字符串与我之前在学习C,C++,Java中的字符串有一定的不同,它非常类似于C++中容器的概念,但用法却与之还是有很大的不同,也许是因为OC...这里总结一下字符串NSString与NSMutableString。 一....创建两个字符串对象: NSString *str1 = @"this is string A"; NSString *str2 = @"this is string B"; 计算字符串中的字符个数...NSMutableString NSMutableString对象代表一个字符序列可变的字符串,而且NSMutableString是NSString的子类,因此前面介绍的NSString所包含的方法...,NSMutableString都可以直接使用,NSMutableString对象也可直接当成NSString对象使用。
接触面向对象也有一段时间了,当时是通过C++学习的OOP,后来又接触到了PHP和Java。...刚接触OC,用OC中的便利初始化方法和便利构造器有点蹩脚,不过还可以在接受的范围之内,以下的东西可能会对面向对象的特征:抽象,封装,继承等总结的较少一些,主要总结了OC中面向对象的特点。...简单的说来,便利构造器是为了简化对象的初始化而生的,在之前的博客中也说了一嘴:编程是间接的过程,其实使用便利构造器就是间接的过程。在程序中处处都用到了间接。...比如你定义的变量,你定义的函数,都是在间接的使用一些东西。在现实生活中间接的作用的很大的,就连找个女朋友也要间接一下,如果间接好了你很有可能和奥巴马成为好哥们不是吗,不是有种理论叫做六度人脉吗?...在OC中类是通过两个单独的文件定义。接口定义在对应的头文件中,该文件的作用是说明此类具有哪些属性和方法,但不去实现其行为。 1.
现在大伙儿慢慢转向苹果的新开发语言Swift,似乎亦不必花太多时间在Objective-C上。...主要基于三个原因(参考:Please explain Getter and Setters in Objective C): 可以在getter和setter中添加额外的代码,实现特定的目的。...KVC和KVO都是基于此实现的。 在非ARC时代,可以在在getter和setter中进行内存管理。 因此,写getter和setter,可算是Objective-C中「约定俗成」的做法了。...Objective-C2.0之后: 庆幸的是,程序员都喜欢「偷懒」,所以就有了2006年Objective-C2.0中的新语法:Properties。...; 还需要手动声明实例变量(和Objective-C2.0之前一样) 然后在.m文件,还要用@synthesize自动合成getter和setter的实现。
A、nonatomic:提供多线程保护,提高性能,在没有使用多线程的编程中能够选择使用。...B、Objective-C一个完整的类分为interface和implementation两块 C、Objective-C对象使用new分配内存,用delete释放 D、Objective-C协议分为非正式协议和正式协议...C、在Objective-C中通知对象运行某种操作,称为发送消息....可是每一个键值相应的对象必须不同 D、集合内仅仅能存对象 49、 NSString 和 NSMutableString的关系和差别描写叙述不对的是: 答案:(D) A、NSString...D、NSString和NSMutableString没有不论什么关系。
objective-c不像CSharpe有一个标准库 他的标准有很多,想象一下近40年前的编程语言 他都经历了什么,因为早期objective-c的一套工具库是乔老头子出走时Next-step公司写的,...&NSMutableString常用操作梳理 - 来自CocoaChina NSArray & NSMutableArray 和上面的NSString & NSMutableString类似。...存储的是二进制数据,在文件操作,网络,以及核心图形图像中使用较广泛。...3、NSNumber、NSArray、NSDictionary和NSData之间的转换 数组转NSData是建立在归档的基础上,归档也称为序列化,OC中NSString 对象、NSNumber...文件和目录操作,IOS文件操作,NSFileManager使用文件操作: objective-c通过使用NSFileManager类来管理和操作文件、目录,NSFileManager,文件或目录是使用文件的路径名的唯一标示
在学习iOS App开发中遇到需要计算时间差并格式化输出的需求,没有现成的方法,需要结合NSCalendar和NSDateComponents来实现。...不过这个方法跟VB和sql里的dateDiff还是有点不一样,虽然可以封装成完全一样,不过我觉得直接返回NSDateComponents会更方便,因为所需要的各种单位上的值都包含在其中了。...我是把代码封装到自己的一个工具类KRUtils里作为类方法,使用起来也很方便。
OC中调用方法某个对象的消息呦两种方式: #1. performanceSelector: withObject: #2. NSInvocation....instanceMethodSignatureForSelector:@selector(printStr1:Str2:Str3:)]; //2.根据方法签名来创建NSInvocation对象...97184] Second argument 2017-01-06 11:55:07.399 BezierPathDemo[1203:97184] Third argument NSInvocation使用时有下面三个地方要注意下...方法的参数个数与外界传进来的参数数组元素个数不符 //此处不能通过遍历参数数组来设置参数,因为外界传进来的参数个数是不可控的 //因此通过numberOfArguments方法获取的参数个数,是包含self和_...cmd的,然后比较方法需要的参数和外界传进来的参数个数,并且取它们之间的最小值 NSUInteger argsCount = signature.numberOfArguments - 2; NSUInteger
: 深入代码理解 Apple在Adopting Modern Objective-C一文中介绍了现代化OC的写法,其中就介绍尽量使用@property定义类的属性,先来看看苹果是怎么介绍property...或者,你也可以使用Xcode中的modern Objective-C转换器来自动转换你的代码。参考Refactoring Your Code Using Xcode。...为了方便使用,Objective-C允许使用点语法来访问getter和setter。...Foundation框架中的很多数据类型已经帮我们实现了上述两个方法,因此我们可以使用copy方法和mutableCopy方法来复制一个对象,两者的区别在于copy的返回值仍未不可变对象,mutableCopy...前文介绍copy修饰符的时候讲过,在修饰NSString这样的不可变对象的时候使用copy修饰,但其实当给对象赋一个NSString时仍旧只复制了指针而不是拷贝内容,原因同上。
Objective-C 学习记录4 字符串的一些方法使用: 1.创建字典的NSString可变字符串,和NSMutableString不可变字符串.都是objective的对象. ...char *str是字母数组. 2.字符串格式化:stringWithFormat,,格式化任何int,char double,float等的内型. 3.stringWithString字符串赋值和这个类似...:temp]; NSLog(@"搜索的字符串在str0中起始点的index 为 %d", rang.location); NSLog(@"搜索的字符串在str0中结束点的...index 为 %d", rang.location + rang.length); //将搜索中的字符串替换成为一个新的字符串 NSString *str = [...拓展:使用下面这个方法整体替换字符串还可以设置替换的区域。
一、字符串 1、NSString代表字符序列不可变的字符串,即一旦NSString对象被创建,包含在这个对象中的字符序列就说不可改变的,直至这个对象被销毁。...; 12 // 将C风格的字符串转换为NSString对象 13 NSString* str2 = [NSString stringWithUTF8String:cstr...代表字符序列可变的字符串,而且NSMutableString是NSString的子类,因此前面介绍的NSString所包含的方法,NSMutableString都可以直接使用,NSMutableString...使用NSDateFormatter完成NSDate和NSString之间的转换的步骤如下: 创建一个NSDateFormatter对象 调用NSDateFormatter的setDateStyle:、setTimeStyle... Objective-C中的深拷贝和浅拷贝 其实OC中深复制和浅复制的概念与在Java、C++中的概念是一致的。
Objective-C 部分 1. 你如何理解OC 的内存管理 OC 内存管理是基于引用计数。...谁想使用某个对象B,就要把对象B 的计数器+1,如果不 使用这个对象了,那么就把对象B 计数器-1,如果B 对象计数器减到0,那么B 对象自动会调用自己的 dealloc函数,也就是这个对象被销毁。...assign, retain, copy, autorelease, release, dealloc 的不同 assign 就是基本的赋值,就是C 的基本的赋值retain 就是让对象引用计数+1...; copy 和mutableCopy 是什么 mutableCopy 可变拷贝NSString --àmutableCopy-àNSMutableString NSArray --àmutableCopy-à...NSMutableArray; NSMutableString -àcopy---NSString #import 和#include 区别 #import 对于包
Objective-C 是苹果为 iOS 和 Mac 开发量身定制的语言。它随着 iPhone 的出现而大火,直到今天国内外大多数的 App 依然是用 Objective-C 在写。...[1240] Objective-C 一度在 TIOBE 排行榜上位列第 3 名,仅次于 Java 和 C。其市场占有份额也远超其他语言。...现在的面试中,传统大厂如 BAT 对 Objective-C 的语言进行较多考察,日常开发也是以 Objective-C 为主。...本章将探讨 Objective-C 的基本语言特性,其动态特性将与 Swift 比较中设计。 Objective-C 面试理论题 1.什么是 ARC?...加分回答: __weak 和 __block 的使用场景几乎与 block 息息相关。而所谓 block,就是 Objective-C 对于闭包的实现。
一直以来使用的解析方式(iOS13之前)都是如下: Objective-C: NSString *token = [[deviceToken description] stringByTrimmingCharactersInSet...在stackoverflow中有人说过这样的解析方式并不好,但是一直没有问题,所以大家也就习惯了这样的解析方式了,但是iOS13中这样的解析方式就有问题了 大家可以更新解析方式为下面这样的方式(兼容各个版本...): Objective-C: (这个是友盟提供的方法) - (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken...ntohl(tokenBytes[6]), ntohl(tokenBytes[7])]; NSLog(@"deviceToken:%@",hexToken); } Objective-C...[deviceToken isKindOfClass:[NSData class]]) return; NSMutableString *valueString = [NSMutableString string
在Objective-C中super是指向直接父类的指针,而self是指向本身的指针,self就相当于java中的this指针。...在OC中写类时可以在@implementation中定义哪些在@interface中无相应声明的方法,但这个方法是私有的,仅在类的实现中使用。 ...在Objectiv-C中几乎所有的类都是继承自NSObject类,NSObject类中存在大量功能强大的方法。下面对NSObject类中的各种方法进行试验和介绍: 1....= str1"); } Objective-C中的继承 继承是is-a的关系,比如猫咪是一个动物,那么动物是父类,而猫咪是动物的子类。...2014-07-30 08:38:12.958 HelloOC[483:303] 我是富二代BILL`s son,我超喜欢飙车 Objective-C中的多态 多态简单的说就是对于不同对象响应同一个方法时做出的不同反应
关于属性声明的限定词,我在下面这几篇文章中都有过介绍,这里不再赘述: 1,内存管理之MRC 2,Effective Objective-C 2.0——理解“属性”这一概念 3,Copy 和 Strong...需要注意的是,我上面说的是针对于在一般的业务场景开发过程中;在OC的语法层面,父类指针是可以指向子类对象的,如果现在是在开发一个工具,或者一个基准类,那么是不在本文的讨论范围之内的。...在封装的场景中,我们声明一个NSString类型的属性,它可能会指向NSString类型的变量,也可能会指向NSMutableString的对象,此时必须要使用copy,这一点问题没有。...但是在日常的业务场景中,我们遇到的场景基本都是确定的,我们会明确地知道最终传递给NSString类型的指针的变量到底是NSString还是NSMutableString,这样的话,我们在最终赋值的时候就完全可以手动将变量转换一下...(支持反方) (2)根据第一条,我们要求声明String类型的属性的时候使用strong,但是要同时保证在业务场景下不能将NSMutableString类型的变量赋值给NSString类型的属性。
OC中使用引用计数和垃圾回收来管理内存,在OC中为每个对象分配一个引用计数器,当对象刚刚被创建时其初始值为1,当有某段代码需要访问一个对象是时,会将该对象的引用计数器加1(通过retain来实现);当访问一个对象结束时...等方法的,需要在XCode中进行设置,设置如下: 把Objective-C Automatic Reference Counting 改为NO,即可。 ...(3).在可变数组中移除一个str,观察retainCount的变化 (4)我们为什么要用可变的字符串呢?稍后会提到为什么。...demo: 1 2 3 4 /*使用stringWithFormat创建的NSString为变量,系统会进行引用计数。...:303] 传入的变量FomatRetainCount = 3 2014-08-03 20:18:37.240 Memory[2499:303] 传入的变量RetainCount = 3 Objective-C
属性“__attribute__”在Objective-C中的应用 关于__attribute__,你可能用的不多,但是一定经常见到,在系统的Foundation框架中,__attribute...这是一种非常强大的机制,在实际应用中也非常频繁,例如对以一个拥有模块化和路由功能的应用程序,可以通过这种方式来自动化的进行路由注册(无需手动调用),需要注意,constructor与destructor...8. objc_requires_super 这个属性用来修饰Objective-C中父类的方法,如果子类进行了重写,在重写的方法中没有调用父类方法,则会进行编译器提示。...在实际编程中,很多时候,都是由于子类重写了父类的方法造成不可预知的问题,通过使用这个属性可以有效的对开发者进行提示,例如: ?...11. objc_runtime_name 这是一个很有趣的属性,其可以运行时改变Objective-C类的类名,但是不会影响其行为。
Objective-C里核心的处理字符串的类就是NSString和NSMutableString这两个类,这两个类完成了Objective-C中字符串大部分功能的处理,我们今天的重点就是这两个类了。...//////////字符串编码和转换////////// NSString *string = @"string"; NSLog(@"最快编码值(枚举): %lu",...; 1.11 字符串分割 //////////字符串分割////////// NSString *string = @"A_B_c_D_E_F"; //分割(指定字符串...NSMutableString是动态的字符串,可以动态的添加,修改,删除等,并且NSMutableString继承自NSString,所以NSString中的方法在NSMutableString都可以使用...) NSMutableString *mutableStr2 = [NSMutableString stringWithCapacity:20]; 2.2 可变字符串扩展方法 NSMutableString
一 数据类型 Objective-C是在C语言基础上拓展出的新语言,所以它是完全兼容C语言代码的,C语言中的基本数据类型如int、float、double和char在Objective-C中是完全可以正常使用的...1.1 基本数据类型 因为Objective-C是在C语言基础上拓展出的新语言,所以它是完全兼容C语言代码的,C语言中的基本数据类型都可以正常使用,直接来自C语言中的数据类型如下所示。...1.2.1 BOOL/Boolean Objective-C中的BOOL类型在不同的架构系统上是不一样的,所以在64-bit架构系统下BOOL是对应C语言中的bool,值只能是1(YES)和0(NO),...Objective-C提供了不少类可以帮助我们,比较常见的是NSNumber,NSValue和NSData。 NSValue主要就是将这些原生的数据封装成对象,方便我们进行存储访问。...); 1.2.4 字符串NSString/NSMutableString Objective-C里核心的处理字符串的类就是NSString和NSMutableString这两个类,这两个类完成了Objective-C
在定义实例对象的时候,并不会进行不论什么存储空间(堆)分配,直到调用类方法alloc函数和实例方法init函数实现实例对象在堆中的结构存储分配。并将isa指向其类对象。...(Messaging): 在对象之间传递数据并执行任务的过程 Objective-C基于C语言加入了面向对象特性和消息转发机制的动态语言。...Objective-C强调消息传递而非方法调用。 能够向一个对象传递消息,且不须要再编译期声明这些消息的处理方法。 这些方法在执行时才确定。执行时(runtime)详细功能将在以下介绍。..., 可通过关键字@selector()获得 id 数据结构在第一部分:对象模型中已经有定义。...2.0 Objective-C的对象模型与执行时 深入理解Objective-C的Runtime机制 Objective-C的动态特性 发布者:全栈程序员栈长,转载请注明出处:https: