1.我們都知道c# java 都有個入口main函數而swift卻代碼中卻沒有;不過有main.swift就把這個文件當中程序的入口吧!而且文件不能刪除,如果刪除程序直接不能編譯通過
2 基本語法:用let來聲明常量,用var來聲明變量;一般定義的變量的類型跟值對應
let a=10; 常量只要賦值了不能二次賦值也就是說常量的值不允許改變
var b=10; 也可以定義多個值(元組) var c=(10,20,30)也可以給名稱var c = (money: 100, name:"ysq")。 訪問c.money
var c=[1,3,4,45] 定義數軸 ,訪問下標
備注: 編程的時候分號可以寫可以不寫,注意空格
OC(僅僅是做一些筆記)
好吧!第一次自學oc那語法真的好操蛋,我發現原來那些本質的東西沒理清:Oc和c完全兼容,所有的關鍵詞都是@開頭,他雖有的函數都是虛函數,nil相當于null;
還有一個其他語言沒有的類型id就理解他泛型的對象吧。oc里面的類一般有二個文件.h(函數的申明)和.m(具體的實現),好吧還有一種類型是指針(這個東西會讓人頭暈我也不是很懂只是理解一些,哈哈聽說oc里面很少用到指針復雜的功能,指針是一個包含了另一個變量的地址。申明是指向任意類型變量,指針操作符是個*取地址&。在oc中對象就是指針,你可以吧他看作對象)
類申明的關鍵詞@interface @end結束
例子: @interface a:NsObject{
int age;//必須寫字段還可以叫訪問級別(作用域)
}
//申明函數相當于接口
-(id)init //函數為init 返回類型id
-(id) abc:(int) newabc; ////函數為abc 返回類型id 帶個參數newabc類型為int
--(id) abc:(int) newabc bcd:(int)newbcd; ////函數為abc:bcd 返回類型id 帶2個參數newabc和newbcd類型為int
@end
引用頭文件 #import "a.h"
@implementation a
-(id)init
{
self=[super init]
//super表示父類 self表示對象自己
if(self){
id=1;
}
return self;
}
@end
調用方法在主函數里面
a *dog=[a alloc];[dog init]
int g=[dog init]
還一種給id(字段)賦值也用上面的類
//這是主函數入樓什么的簽名不寫啦{
a *xiaoming=[[Person alloc] init]; //person alloc這是相當于在內存中開閉一個空間(堆) init初始化一下 *xingming4個字節相當于一個指針 就理解指向堆里面的地址
開閉了堆得空間在oc里面要手動釋放它;堆就是個內存池
xiaoming->age=20;注意age一開始是有值得為0如果是字符串為null;
a *xiaojian=xiaoming; 記住這這里是在蘸開閉一個xiaojian的空間二指針指向的地址和第小明的一樣,等于就是一個對象而已
a *xiaoli=[[Person alloc] init]; //一定要注意這里是另外開閉一個空間這是小李的對象
xiaoming->age=20;
}
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
面向對象 1.繼承,繼承就是子類可以得到父類的非私有的字段和方法 ;作用就是創建大量的相似類的時候可以節省工作量
2.重寫:父類的方法有時候不適合子類,那么子類可以寫一個跟父類一樣的方法名覆蓋掉叫重寫也屬于多態
3.多態:同一個接口不同的實現就像object-c里面方法的申明就是接口
4.虛方法:在oc里面所有的函數都是虛方法,父類的指針可以只想子類的對象,但是調用方法的時候是不看指針看指向那個對象,好住就不同的事物被相同的事件觸發產生不同的效果;
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
oc里面的變量修飾符:默認就是auto這個等程序運行到這個語段的結束他就釋放掉,比例函數里面的變量函數外不能訪問,staic就理解為全局變量,const修飾符這種變量是只讀的
這理解常量
結構體
typedef struct
{
int g;
int e;
}point;
賦值 int main(::::)
{
//申明點變量
point g:
//賦值
g.g=10;
}
枚舉
------------------------------------------------------好吧記一些常用的方法-----------------------------------------------------------
Nsstring:Compare 字符串比較大小后面可以跟這個options
如果直接用==直接比較是比較內存地址的,如果需要比較內容相等的話isEqualTostring
hasSuddix 以什么什么結尾
componentaeparatedbustring 吧數組轉換成Nsstring
componenstparasraBytring 按指定的分割成Nssarray
新聞熱點
疑難解答