有關oc中的枚舉類型
1、不推薦使用,因為不能夠使用一種類型的方式表示枚舉;
enum
{
TMEnumTestOne,
TMEnumTestTwo,
};
enum 類型
typedef enum
{
TMEnumTestOne,
TMEnumTestTwo,
} TMEnumTest;
enum TMEnumTest
{
TMEnumTestOne,
TMEnumTestTwo,
};
typedef enum TMEnumTest TMEnumTest;
將枚舉描述為一個類型TMEnumTest。
這種寫法也有局限性,在作為函數參數時,如果傳入NSInteger類型的數據,則需要強制轉換,否則會有類型不匹配的警告,所以這種方式也不推薦。
老式enum寫法
enum
{
TMEnumTestOne,
TMEnumTestTwo,
};
typedef NSUInteger TMEnumTest;
這種寫法可以指定TMEnumTest的類型,并且作為函數參數時,傳入的值不需要進行強制類型轉換。
但是這種寫法不會檢查枚舉的正確性,是好是壞需要自己判斷,
新式enum寫法
(一般都是下面的第一種寫法,好像第二種寫法也是有的,不過我很少這樣子寫,寫一下可以推薦使用這種方法,因為可以使用& 的方式表示兩種枚舉的情況而不用一個一個的來寫了)
typedef NS_ENUM(NSUInteger, TMEnumTest)
{
TMEnumTestOne,
TMEnumTestTwo,
};
typedef NS_OPTIONS(NSUInteger, TMEnumTest)
{
TMEnumTestOne = 0,
TMEnumTestTwo = 1 << 0,
};
NS_ENUM和NS_OPTIONS本質是一樣的,僅僅從字面上來區分用途。NS_ENUM是通用情況,NS_OPTIONS一般用來定義“位枚舉”。位枚舉應該是位移動來進行完成的。
這種寫法同樣作為函數參數時,傳入的值不需要進行強制類型轉換。但是也同樣不會檢查枚舉的正確性,和 老式enum寫法 一樣,
但是不同的是,新式enum寫法 在使用switch時,會進行值的檢測,如果枚舉中無此值,則會彈出警告,如下圖。這種方式見仁見智了。本人推薦這種寫法。
-
枚舉最大值
對于一般的枚舉,要獲取枚舉的最大值是很難的,因為隨著枚舉的擴充,最大值在不斷變化,這時推薦使用一個固定的枚舉表示最大值,例如:
typedef NS_ENUM(NSUInteger, TMEnumTest)
{
TMEnumTestOne,
TMEnumTestTwo,TMEnumTestMax, // 表示最大值
};
這樣就可以使用TMEnumTestMax表示枚舉TMEnumTest的最大值了。
- 位枚舉
位枚舉是一種特殊的枚舉,在apple的類中使用的很多,例如NSStringCompareOptions等。
typedef NS_OPTIONS(NSUInteger, TMEnumTest)
{
TMEnumTestOne = 0, // 0
TMEnumTestTwo = 1 << 0, // 1
TMEnumTestThree = 1 << 1, // 2
TMEnumTestFour = 1 << 2, // 4
};
- 位枚舉的特點是可以使用位運算來處理枚舉值,實際使用中可以用一個變量存儲多個枚舉值,表示互不影響的多個設置。
可以知道枚舉類型中一個枚舉變量可以包括多個枚舉值,而不是我們單純的認為一個枚舉變量只能夠有一個枚舉值。
但是有0 就會出現問題了,也就是與0 都會出現錯誤的。
為了不出現面的情況,我們可以將枚舉類型從1開始,而不是從0開始,也就是位枚舉類型是從值為1開始的。
動效:
http://www.cocoachina.com/design/20160729/17237.html
這個就是關于UI設計的一種美感
二維碼的效果:
http://www.cocoachina.com/swift/20160729/17221.html
二維碼應該是怎么樣進行開發的,也即是如何進行完成的。
好像這個二維碼不是很好用的,也就是這個二維碼應該是python的有關內容,通過網站來實現。
有關于UIwindow的設置
可window不管是storyboard和xib都是可以的,只要設置window的背景顏色是透明的。
同時也要注意hidden設置為false,就會彈出來。
p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Helvetica Neue'; color: #454545}p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Helvetica Neue'; color: #e4af0a}p.p3 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Helvetica Neue'; color: #454545; min-height: 14.0px}p.p4 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px '.PingFang SC'; color: #454545}span.s1 {font: 12.0px '.PingFang SC'}span.s2 {font: 17.0px 'PingFang SC'}span.s3 {font: 17.0px 'Helvetica Neue'}span.s4 {font: 12.0px 'Helvetica Neue'}
UIView animation (動畫效果)
http://www.cocoachina.com/ios/20160727/17199.html
reactiveCocoa swift首先要知道reactive oc 是怎么使用的
支持swift 2.x和oc
http://blog.devtang.com/2014/02/11/reactivecocoa-introduction/
http://www.cocoachina.com/swift/20160727/17210.html
據說:reactivecocoa + mvvm的模式進行開發
一種監聽信號量的處理方式
runloop 深入研究**** Runloop ****與線程保活
http://www.cocoachina.com/ios/20160728/17220.html
技術點:
http://www.code4app.com/thread-9683-1-1.html
簡書中有一個直播的技術框架
http://www.lxweimin.com/p/3b956bbeeb47
http://www.lxweimin.com/p/b3e7fa514ab7
webView的使用
通訊交流很多人都是在使用“環信”,是什么東東,就是qq聊天的一種方式;
、需要閱讀一下swiftJSON 這個類
有關插屏幕的設置,為什么不用xib的方式進行設置呢?那是因為總是實現不了背景的透明,所以這里應該都是通過storyBoard來實現透明的,有一點可以的話,再進
行修改。
插屏如果要重寫的時候,應該要注意一下是背景顏色以及相關的按鈕沒有顯示,可能是因為關聯到其他的工程的組件上面了,所以這個要注意一下。
這個我也不知道為什么,所以應該盡可能的避免其他的工程打開,它們似乎有自動聯系起來。
為什么swift中let 這樣子用回出現錯誤????
查閱里面的閱讀內容
deinit 相關的內容退出的時候
總結:
1、廣告的彈出,就是內容上的彈出,為什么會顯示不出倆,可能聯系到其他的地方
還是會不出現半透明的現象,如果沒有出現想要的結果,就設置一下window的backgroundColor 為透明uicolor.clearcolor
總結:
1、我們在不適用storyboard進行加載的時候,經常也是這樣子的,需要設置window.backgroundColor = uicolor.cleancolor
2、swift中應該注意一下是什么?尤其是? 的使用,swift的語法
3、swift語言特性,是面向對象語言
4、collecitionView 的顯示,就是內容上的顯示== 來判斷是不是這個collectionView,通過scrollview的轉化也是沒有問題的,
5、window的使用,尤其是在彈層上面,這個東東應該是盡可能使用storyBoard,而不是用xib,xib不發實現別經是透明或者半透明。
6、邏輯上的優化盡可能的封裝。
有個問題:
1、就是oc中如果沒有值的時候,我們都是適用什么呢?一般都是if來進行判斷一下,然而數據解析我們都是適用jsonModel就是避免為空的時候出現崩潰;
2、swift中就有了optional來進行檢查,沒有值也不會報錯。
swift中的optional的作用或者用法:
復習:
1、就是約束的計算(oc語言里面),這里有關約束的優先級,還有自動布局除了storyBoard還有幾個組件是通過代碼來進行完成的。
2、尤其是在oc上面容易出現可能是有nil的情況,nsstring的類型,什么時候是否為nil需要判斷一下是什么?
3、 有關緩存,項目里面都是使用sqlite的小型數據庫
4、view上面的組件,laodview進場使員工的,layoutsubview() 等等方法;
5、數據基本上都是在后臺上拉取的,這個過程是怎么樣進行處理的,
6、進度哪里來的數據在內存中傳遞,我們是可以進行處理進度條以及有關的約束內容。
7、pageViewcontroller 、ADinterstialAd 這兩個新的東東是什么鬼;