Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/99.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Swift结构中字符串和NSString之间的差异 我一直在阅读Apple开发人员文档,字符串是一个值类型,NString基金会是一个引用类型,类似Strutt是一个值类型,但是如果我在NString中使用NString,它的工作方式就像一个字符串。你能详细说明一下区别吗_Ios_Swift - Fatal编程技术网

Ios Swift结构中字符串和NSString之间的差异 我一直在阅读Apple开发人员文档,字符串是一个值类型,NString基金会是一个引用类型,类似Strutt是一个值类型,但是如果我在NString中使用NString,它的工作方式就像一个字符串。你能详细说明一下区别吗

Ios Swift结构中字符串和NSString之间的差异 我一直在阅读Apple开发人员文档,字符串是一个值类型,NString基金会是一个引用类型,类似Strutt是一个值类型,但是如果我在NString中使用NString,它的工作方式就像一个字符串。你能详细说明一下区别吗,ios,swift,Ios,Swift,例如: struct testing { static var testingstring1 = NSString() static var testingstring2 = String() } Swift可与Objective-C互操作,并将某些Objective-C类型转换为Swift类型 可以在Obj-C和Swift之间转换的类型称为桥接类型。String和NSString是此类桥接类型的示例,因此您可以将NSString分配给字符串变量。字符串NSString不

例如:

struct testing {

    static var testingstring1 = NSString()

    static var testingstring2 = String()

}

Swift可与Objective-C互操作,并将某些Objective-C类型转换为Swift类型

可以在Obj-C和Swift之间转换的类型称为桥接类型。String和NSString是此类桥接类型的示例,因此您可以将NSString分配给字符串变量。

字符串NSString不匹配:

NSString概念涉及UTF-16代码点。每种方法都有其优点。与Swift相比,NSString方法具有更高的速度和效率,Swift必须遍历字符串以研究字符的构造方式;但是快速的方式给出了你直觉上认为是正确的答案。为了强调这一区别,非文字Swift字符串没有长度属性;它与NSString长度的相似性是其utf16属性的计数。 幸运的是,元素不匹配在实践中并不经常出现;但它可能会出现。下面是一个很好的测试用例:

let s = "Ha\u{030A}kon"
print(s.characters.count) // 5
let length = (s as NSString).length // or: s.utf16.count
print(length) // 6

我们已经使用Unicode码点创建了我们的字符串挪威名字Håkon,该码点与前面的码点组合,形成一个上面有一个环的字符。Swift遍历整个字符串,因此它规范化组合并报告五个字符。Cocoa一眼就看出该字符串包含六个16位代码点。

我认为问题在于,当您初始化NSString时,Swift会自动将其更改为字符串。尝试像这样初始化NSString,看看是否会出现编译错误:

    var testingstring1: NSString = "testingstring1" as NSString
下面从Objective-C的引用类型和Swift的值类型两个方面解释了这两种语言之间的联系:

字符串是一种结构

//在Swift模块中

公共结构字符串

{

}

NSString是一个类

//在基础模块

打开类NSString:NSObject

{


}

NSString是class,String是struct的可能重复项NSString是class,String是struct,我理解,但NSString是引用类型,它是如何在结构中工作的。嗨,Tj3n..这不是一个重复的问题。请理解我的问题。我没有问结构和类之间的区别。我问的是结构中数据类型声明之间的区别。