OC基礎-Foundation——常用結構體 (NSRange 、NSPoint、NSsize、NSRect)
Oc為我們提供了四個結構體,定義的變數可以存在棧上和堆上。 分別是:範圍:NSRange , 幾體資料型別 : 點(NSPoint) 尺寸(NSsize) 區域(NSRect); ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- <一> NSRange: 用來表示相關事物的範圍。 結構體原形:typedefstruct _NSRange { NSUInteger location; NSUInteger length; }NSRange; NSRange:(用於儲存單詞或語句,在裡面的位置) location:起始位置, length:元素個數。 NSRange,是結構體,不是類,定義的變數不需要加* 三種賦值方式: NSRange range; //c語言結構體變數的賦值的方法 range.location=17; range.length=4; NSLog(@"%lu %lu",range.location, range.length); //c語言結構體變數初始化的方法 NSRange range1={17,4}; NSLog(@"%lu %lu",range1.location, range1.length); //oc的賦值方法 //最常用 range=NSMakeRange(17,4); NSLog(@"%lu %lu",range1.location, range1.length); cocoa提供的一個快捷函式NSMakeRange(); 使用NSMakeRange()的好處是可以在任何能夠使用函式的地方使用它,例如在方法呼叫中將其當成引數傳遞。 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- <二>NSPoint 代帶平面上的點 結構體原形: typedefstruct _NSPoint { float x; float y; }NSPoint; 三種賦值方式: NSPoint point; point.x=10; point.y=20; NSLog(@"%f,%f",point.x,point.y); NSPoint point1={10.3,20.6}; NSLog(@"%f,%f",point1.x,point1.y); point=NSMakePoint(10.5,11.3); NSLog(@"%f,%f",point.x,point.y); 注:x,y是值是float型別的。 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- <三> NSSize 用來儲存長度和寬度。尺寸。 結構體原形: typedef struct _NSSize { float width; float height; }NSSize; 三種賦值方式: NSSize size; size.width=15; size.height=20; NSLog(@"%f %f",size.width,size.height); NSSize size1={15,20}; NSLog(@"%f %f",size1.width,size1.height); size=NSMakeSize(20,30); NSLog(@"%f %f",size.width,size.height); -------------------------------------------------------------------------------------------------------------- <四> NSRect 用來表示區域。 結構體原形: typedef struct _NSRect { NSPoint origin; NSSize size; }NSRect; 三種賦值方式: NSRect rect; rect.origin.x=15; rect.origin.y=20; rect.size.width=8; rect.size.height=15; NSRect rect1={15,20,8,15}; rect =NSMakeRect(15,20,15,20); NSSize size=NSMakeSize(50,60); NSLog(@"%f %f ",size.width,size.height); NSRect rect=NSMakeRect(5.3,4.6, 20.5, 40.5); NSLog(@"%f %f %f %f",rect.origin.x,rect.origin.y,rect.size.width,rect.size.height); #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { 一般的CGPoint之類可以直接用,但是比較高階的函式需要加入CoreGraph框架 <img src="https://img-blog.csdn.net/20150428234421172?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYmFvamllMTAyMg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" /> NSRange range=NSMakeRange(50, 60); NSString *rangeString=NSStringFromRange(range); NSLog(@"%@",rangeString); //NSPoint/CGPoing 是一樣的 NSPoint point=NSMakePoint(0, 0); //CGPoint dd=CGPointMake(0, 0); NSString *pointString=NSStringFromPoint(point); NSLog(@"%@",pointString); //CGSize/NSSize是一樣的 CGSize size=CGSizeMake(300, 200); //NSSize size1=NSMakeSize(300, 200); NSString *sizeString=NSStringFromSize(size); NSLog(@"%@",sizeString); //CGRect/NSRect是一樣的 CGRect rect=CGRectMake(0,0, 80, 90); //NSRect rect1=NSMakeRect(0, 0, 50, 60); NSString *rectString=NSStringFromRect(rect); NSLog(@"%@",rectString); //表示的都是零 CGPointZero; CGSizeZero; CGRectZero; //判斷是否相等 //使用這些函式的前提是新增CoreGraphics 框架 BOOL b= CGRectEqualToRect(CGRectMake(0, 0, 80, 80), CGRectMake(0, 0, 80, 80)); CGSizeEqualToSize(<#CGSize size1#>, <#CGSize size2#>); CGPointEqualToPoint(<#CGPoint point1#>, <#CGPoint point2#>); //判斷左邊是否包含右邊的 CGRectContainsPoint(CGRectMake(50, 40, 100, 50), CGPointMake(60, 45)); } return 0; }
相關推薦
OC基礎-Foundation——常用結構體 (NSRange 、NSPoint、NSsize、NSRect)
Oc為我們提供了四個結構體,定義的變數可以存在棧上和堆上。 分別是:範圍:NSRange , 幾體資料型別 : 點(NSPoint) 尺寸(NSsize) 區域(NSRect); ---------------------------------------------
iOS開發——oc——founctation中常用結構體(NSRange、NSPoint\CGPoint、NSSize\CGSize、NSRect\CGRect)
founcation中常用結構體 一、概述: 在foundation框架中,有一些關於位置和尺寸的結構體,在我們實際開發ios的時候會經常被使用到,所以這裡詳細講解下: NSRange : 表示範圍 NSPoint\CGPoint
黑馬程式設計師——Foundation框架——常用結構體(NSRange、NSPoint等)
一,Foundation框架簡介: OC的Foundation框架包含了常用的類(所有類均是繼承自NSObject )和資料型別(結構體、列舉、等)。 路徑:/Applications/Xcode.app/Contents/Developer/Platforms/iPh
c語言基礎語法六——結構體(完結)
1;關於c語言結構體的引入; 在前面已經介紹了整形(int,long,….),浮點型(flaot,double),字元型(char),還介紹了陣列(儲存一組具有相同型別的資料),字串。但是在實際問題中只有這些資料型別是不夠的,有時候我們需要其中的幾種一起來修飾
常用結構體之NSRange用法
定義 NSRange在官方文件中如是定義:A structure used to describe a portion of a series—such as characters in a string or objects in an NSArray ob
iOS基礎(foundation)-常用結構體
------ 知之部落格 期待與您交流! ------- 在Foundation中定義了很多常用結構體型別來簡化我們的日常開發,這些結構體完全採用Objective-C定義,和我們自己定義的結構體沒有任何區別,之所以由框架為我們提供完全是為了簡化我們的開發。
黑馬程式設計師——OC基礎---Foundation框架之結構體
一、概述 Foundation—基礎框架。框架中包含了很多開發中常用的資料型別,如結構體,列舉,類等,是其他ios框架的基礎。 如果要想使用foundation框架中的資料型別,那麼包含它的主標頭檔案就可以了。 即#import #import &l
NSString - - 常用結構體與字符串之間的轉化(打印時可用)
code cgrect net 字符 cgpoint mst cnblogs cgp affine CGRect、CGSize、UIEdgeInsets、UIOffset、CGPoint、NSRange等 UIGeometry.h 1 NSString *NSStr
【C#基礎】列舉(Enum)、結構體(Struct)、委託(Delegate)
1.列舉(Enum) 確定數量,確定取值。方向(東南西北),性別(男女) 語法:[public] enum 列舉名 { 值1, 值2, 值3,
Foundation框架: 3.常用結構體
在前面我們已經學完了NSRange和NSPoint, 這次我們來學第三個常用結構體, 它就是NSSize, 也就是CGSize,CGSize在Foundation框架中表示的是寬高, 下面讓我們來看
小白學開發(iOS)OC_ 經常使用結構體(2015-08-14)
轉換成 tracking 小白 epo idt rgb 表示範圍 dsm tor // // main.m // 經常使用結構體 // // Created by admin on 15/8/13. // Copyright (c) 2015年 admin.
Python基礎之常用模塊(三)
section signal server .section 通過 sub 實例 wait 配置文件 1.configparser模塊 該模塊是用來對文件進行讀寫操作,適用於格式與Windows ini 文件類似的文件,可以包含一個或多個節(section),每個節可以有多
java基礎基礎總結----- 常用DOS命令(一)
擴展 ear mkdir jar文件 方法 常用 directory 加載 rect 常用DOS命令 dir(directory):列出當前目錄下的文件以及文件夾 mkdir (make directory) : 創建目錄 rd (remove directory):
iOS 的視圖層次結構、繼承關系及常用結構體探討
typedef round tof 圖層 矩形 send 其它 mov uiscreen UIView表示屏幕上的一塊矩形區域,它在App中占有絕對重要的地位,因為IOS中幾乎所有可視化控件都是UIView的子類。負責渲染區域的內容,並且響應該區域內發生的觸摸事件
C語言結構體(Struct)
C語言結構體(Struct) 在C語言中,可以使用結構體(Struct)來存放一組不同型別的資料。結構體的定義形式為: struct 結構體名{ 結構體所包含的變數或陣列 }; 結構體是一種集合,它裡面包含了多個變數或陣列,它們的型別可以相同,也可
rust學習筆記基礎篇4--結構體變數宣告與繫結,所有權,借用,引用(霜之小刀)
rust學習筆記基礎篇4–結構體變數宣告與繫結,所有權,借用,引用(霜之小刀) 歡迎轉載和引用,若有問題請聯絡 若有疑問,請聯絡 Email : [email protected] QQ:2279557541 關於結構體的變數宣告 看過前面
結構體(或者聯合體)變數的成員在記憶體裡是如何分佈的(轉)
1、概述 結構體變數的成員在記憶體裡是如何分佈的、成員先後順序始怎樣的、成員之間是連續的還是分散的、還是其他的什麼形式?這些問題既和軟體相關又和硬體相關。所謂軟體相關主要是指和具體的程式語言的編譯器的特性相關,編譯器為了優化CPU訪問記憶體的效率,在生成結構體成員的起始地址時遵循著某種特定的規則,這就是所謂
C 語言中的結構體(資料結構)
結構體是在資料結構中經常使用的一類,下面對結構體進行一些知識的補充 結構體和陣列的區別 結構體的宣告 結構體宣告的基本形式 struct tag { member-list }variable-list; 引數解釋 tag:結構體的名字
C程式設計--結構體(結構體和函式之間的引數使用)
結構體型別(掌握點): 建立結構體型別 定義結構體型別變數 初始化結構體和引用結構體變數(3種方法,見下) 使用結構體陣列 結構體指標(重要) 指向結構體變數的指標 指向結構體陣列的指標 程式碼案例
go——結構體(二)
Go語言是一種靜態型別的程式語言。這意味著,編譯器需要在編譯時知曉程式裡每個值的型別。 如果提前知道型別資訊,編譯器就可以確保程式合理的使用值。 這有助於減少潛在的記憶體異常和bug,並且使編譯器有機會對程式碼進行一些效能優化,提高執行效率。 值的型別給編譯器提供了兩部分資訊:第一部分,需要分配多少記憶