Swift的String与OC的NSString的区别

Swift的String类型是值类型。如果你创建了一个新的字符串值,那么当其进行常量、变量赋值操作或在函数/方法中传递时,会进行值拷贝。

在不同的情况下,都会对已有字符串值创建新的副本,并对该新副本进行传递或赋值。

这和OC中的NSString不同,当您在OC创建了一个NSString实例,并将其传递给一个函数/方法,或者赋给一个变量,您永远都是传递或赋值同一个NSString实例的一个引用。

除非您特别要求其进行值拷贝,否则字符串不会进行赋值新副本操作。

Swift的String与OC的NSString的区别,布布扣,bubuko.com

时间: 2024-09-30 05:33:56

Swift的String与OC的NSString的区别的相关文章

Swift的数组与OC中数组的区别

相同的值可以多次出现在一个数组的不同位置: Swift中的数组,数据值在被存储进入到某个数组之前类型必须明确,可以显示的类型标注或者类型推断.而且,Swift中的数组不必是对象类型. OC中的NSArray和NSMutableArray,他们可以存储任何类型的实例,而且不提供他们返回对象的任何本质信息. Swift的数组与OC中数组的区别,布布扣,bubuko.com

String 与 NSString 的区别

Swift 的String类型与 Foundation NSString类进行了无缝桥接.在日常开发中,绝大多数应该用 String String 与 NSString 还有以下区别 String类型是值类型(不再是对象类型),字符串在进行常量.变量赋值操作或在函数/方法中传递时,会进行值拷贝. 任何情况下,都会对已有字符串值创建新副本,并对该新副本进行传递或赋值操作. String 可以支持字符遍历NSString 不支持 String 是一个结构体,性能更高:NSString 是一个 NSO

Swift - String与NSString的区别,以及各自的使用场景

String是Swift里新增加的类型,它与原来的NSString可以很方便地互相转换.但在实际开发中,我们该如何选择? 1,能使用String类型就尽量使用String类型,原因如下: (1)现在Cocoa里所有的API都能接受和返回String类型,所以也没必要特地转换下. (2)Swift的String是struct,而NSString类是NSObject,所以String更符合字符串“不变”这一特性.同时,在不触及NSString特有操作和动态特性的时候,使用String的方法,在性能上

Swift开发String+NSString详细使用

// //  ViewController.swift //  Swift+String import UIKit class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() //var 变量  let常量  就不过多叙述了 self.view.backgroundColor = UIColor.yellow; let my:NSString = "My name"

OC Foundation & NSString 字符串

一 Foundation 简介 Foundation 框架是苹果公司提供给开发人员,提高效率的的工作库. Foundation中提供了了多类,定义在头文件中.例如NSString类: #import <Foundation/NSSortDescriptor.h> #import <Foundation/NSStream.h> #import <Foundation/NSString.h> #import <Foundation/NSTextCheckingResu

[Swift]扩展String类:extension String

请参考本博客另一篇技术博文:<[Swift]字符串(String类.NSString类)常用操作> 1 extension String { 2 3 //获取字符串首字符 4 var first: String 5 { 6 get 7 { 8 return String(self[startIndex]) 9 } 10 } 11 12 // 获取字符串最后一个字符 13 var last: String 14 { 15 get 16 { 17 let index = self.index(be

2.Swift的playground与OC语法对比

1.playground 1.1 简介 在2014年的WWDC大会上,苹果公司正式公布了Swift——一款面向苹果移动设备软件开发工作的全新编程语言.为了配合新语言的诞生,Xcode 6新增了一项名为Playgrounds的功能——这其实是一套交互工作区,开发人员可以在此编写Swift代码并在无需将其运行在设备或者模拟器中的前 提下获取实时运行效果反馈.这对于Xcode来说无疑是一种很好的补充,现在各位可以在将自己的代码成果正式添加到主代码库内之前,以实验性方式快速便捷 地掌握地实时运行效果 1

OC中NSString和block的属性时copy,而不用retain

OC中NSString和block的属性时copy,而不用retain   而容器类使用retain NSString 为什么要使用copy,而不是retain 1.首先如果使用retain,只是引用计数+1,并没有生成新的对象,所以效率好 2.但是使用copy安全.因为NSString为NSMutableString 的基类,如果将NSMutableString 以retain的形式赋值给NSString后,后续修改NSMutableString会导致NSString内容的变化,这通常不是我们

swift项目中使用OC/C的方法

假如有个OC类OCViewController : UIViewController类里有两个方法 //swift调用oc或c的混编是比较常用的,反过来的调用很少.这里只写了swift调用oc和c的方式.//OC函数声明- (void)testOC;//C函数声明void testc(); 实现:void testc(){  printf("testc.....................");} -(void)testOC{  NSLog(@"\ntestOC.....