/**
15.5-
隱式強引用 */
class
student
func
show() ->
void
deinit }
// 此時,
stu0
和stu1
都引用了同乙個物件
varstu0:
student
? =
student
.init
(name:
"tom")
varstu1 = stu0
stu0 =
nil
stu1 =
nil
/**上面的這個是顯式的強引用 */
/**
什麼是隱式的強引用呢?
物件加入陣列中,物件如果是引用資料型別,那麼陣列會強引用該物件。
陣列讓該物件的引用計數加1
*/ varstuarray = [
student
.init
(name:
"zhangsan"
), student
.init
(name:
"lisi")]
stuarray[0].
name
= "zhangsanfeng"
/** (
1)當某個物件不在屬於陣列時,該物件的引用計數會減1
(2)陣列本身被銷毀的時候,它包含的所有物件不再屬於它,因此如果物件是引用資料型別,該物件的引用計數減1
*/
/**
這就是隱式強引用的乙個例子。
還有一些其他的例子,比如說我們的定時器,需要註冊乙個物件,定時器被這個物件引用也是乙個強引用;
子試圖加入到父檢視以後,父檢視對子檢視的引用也是強引用。
只要不是迴圈強引用,就沒啥事。 */
隱式解引用
引用和指標 引用和指標引用的行為像乙個const指標解引用乙個有趣的關係式。從而給出如下 int nvalue 5 int const pnvalue nvalue int rnvalue nvalue pnvalue and rnvalue evaluate identically.as a re...
隱式解引用
引用和指標引用的行為像乙個const指標解引用乙個有趣的關係式。從而給出如下 int nvalue 5 int const pnvalue nvalue int rnvalue nvalue 同樣,乙個const引用的行為就像乙個const指標指向const物件是隱式解引用。因為引用總是 點 來有效...
Swift隱式解析,可選,斷言
swift 可選 注意 c 和objective c 中並沒有可選這個概念。最接近的是 objective c 中的乙個特性,乙個方法要不返回乙個物件要不返回 nil,nil表示 缺少乙個合法的物件 然而,這只對物件起作用 對於結構體,基本的 c 型別或者列舉型別不起作用。對於這些型別,object...