官术网_书友最值得收藏!

  • Mastering Swift
  • Jon Hoffman
  • 268字
  • 2021-07-16 14:12:15

Foundation data types

When using foundation data types, Swift provides an overlay that makes interacting with them feel like they are native Swift types. We use this overlay to interact with foundation types, such as CGSize and CGRect for iOS applications (NSSize and NSRect for OS X applications). When developing iOS or OS X applications, we will interact with foundation types on a regular basis, so it is good to see this overlay in action.

Let's look at how to initialize some foundation data types. The following example defines NSRange, CGRect, and NSSize:

var range = NSRange(location: 3, length: 5)
var rect = CGRect(x: 10, y: 10, width: 20, height: 20)
var size = NSSize(width: 20, height: 40)

The overlay also lets us access the properties and functions in a way that feels like native Swift types. The following example shows us how to access the properties and functions:

var rect = CGRect(x: 10, y: 10, width: 20, height: 20)
rect.origin.x = 20 
//Changes the X value from 10 to 20

var rectMaxY = rect.maxY
//rectMaxY contains 30 (value of y + value of height)

var validRect = rect.isEmpty
//validRect contains false because rect is valid.

In the preceding code, we initialize a CGRect type. We then change the property of x from 10 to 20, retrieve the value of the maxY property, and check the isEmpty property to see whether we have a valid CGRect type.

We just barely scratched the surface of the interoperability between Swift and Objective-C. We will discuss this interoperability in depth in Chapter 11, Using Mix and Match later in this book.

主站蜘蛛池模板: 三台县| 灵石县| 萝北县| 乐亭县| 泸定县| 吉林市| 桐梓县| 滦平县| 盱眙县| 大英县| 温宿县| 法库县| 岑巩县| 阳泉市| 伊春市| 忻州市| 牡丹江市| 奉新县| 衡阳县| 蓬溪县| 郑州市| 松溪县| 土默特左旗| 宁国市| 东乡| 盐亭县| 绍兴县| 钟祥市| 杨浦区| 泸定县| 穆棱市| 汕头市| 甘泉县| 逊克县| 确山县| 铜鼓县| 天全县| 通榆县| 枞阳县| 凤庆县| 柏乡县|