copy 與 mutablecopy區(qū)別
1.對于不可變對象的copy,執(zhí)行的是內(nèi)存地址,也就是指針的復(fù)制,并沒有新生成一個對象。并且生成的這個對象是不可變的。
2.對于不可變對象的mutablecopy,執(zhí)行的是深拷貝。也就是會重新生成一個對象。生成的對象是可變的
3.對于可變對象的copy,執(zhí)行的是深拷貝。copy出來的對象是不可變的。
4.對于可變對象的mutablecopy,執(zhí)行的深拷貝。mutablecopy出來的對象是可變的。
keychain用處
1.存儲隱私信息
在iOS系統(tǒng)中,最常用的keychain服務(wù)就是存儲用戶密碼了。使用keychain保存用戶密碼最大的好處已經(jīng)在上面說過,個人極力推薦這么做。
2.數(shù)據(jù)共享
如果我們有多個app,它們之間需要共享一些數(shù)據(jù),以提供更好的用戶體驗,那么使用Keychain群組可以實現(xiàn)。但前提是同一個公司的產(chǎn)品才能共享,比如com.hyyy.test1和com.hyyy.test2兩個同一公司下的不同產(chǎn)品之前可以實現(xiàn)數(shù)據(jù)共享。
3.設(shè)備唯一標(biāo)示存儲
在iOS中,為了在蘋果的打壓下獲取唯一標(biāo)示符,開發(fā)者們也是想盡了辦法,目前最好的方式就是獲取IDFV,并將其存儲到keychain中。IDFV是設(shè)備區(qū)別應(yīng)用提供商的,一般來說可以作為應(yīng)用唯一標(biāo)示符。但是IDFV缺陷就是當(dāng)設(shè)備刪除了該所有應(yīng)用提供商的app之后,IDFV值會發(fā)生變化,所以IDFV+Keychain的組合目前被經(jīng)常用到,來替代UDID的作用。特別是加上Keychain的共享服務(wù),可以使應(yīng)用提供商下的所有app下獲取的IDFV都不會發(fā)生變化。這一服務(wù)可以說是目前最佳的識別用戶的辦法。
app之間共享數(shù)據(jù)的方法
http://www.itdecent.cn/p/169e31cacf42