日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

OC基础(15)

發布時間:2024/4/15 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 OC基础(15) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
  • @property參數
  • @Property練習
  • @class
  • 循環retian

@property參數

本小節知識點:

  • 【掌握】控制set方法的內存管理
  • 【掌握】控制需不需要生成set方法
  • 【掌握】多線程管理
  • 4. 【掌握】控制set方法和get方法的名稱

    1.控制set方法的內存管理

    • retain : release舊值,retain新值(用于OC對象)
    • assign : 直接賦值,不做任何內存管理(默認,用于非OC對象類型)
    • copy : release舊值,copy新值(一般用于NSString *)

    2.控制需不需要生成set方法

    • readwrite :同時生成set方法和get方法(默認)
    • readonly :只會生成get方法

    3.多線程管理

    • atomic :性能低(默認)
    • nonatomic :性能高

    4.控制set方法和get方法的名稱

    • setter : 設置set方法的名稱,一定有個冒號:
    • getter : 設置get方法的名稱

    • 注意: 不同類型的參數可以組合在一起使用

    ?

    @Property練習

    本小節知識點:

  • 【掌握】@Property練習

  • 1.@Property練習

    • 微博類(Status)

      • 文字內容(text)
      • 配圖(picture)
      • 發表時間(createTime)
      • 作者(author)
      • 轉發的說說(repostStatus)
      • 評論數(commentCount)
      • 轉發數(retweetCount)
      • 贊數(likeCount)
    • 作者類(Author)

      • 昵稱(name)
      • 頭像(icon)
      • 生日(birthday)
      • 賬號(account)
    • 賬號(Account)

      • 賬號名稱(name)
      • 賬號密碼(pwd)
      • 賬號注冊時間(registerTime)

        ?

    模擬場景: * 老王在2010-1-1 17:56:34注冊了一個賬號 (名稱:xiaomage@520it.com, 密碼:haomage)* 老王的生日是1986-3-8 18:18:18* 老王發布一條說說* 文字內容 @“爆米花手機比逼格更有逼格”* 圖片 @“phone.png”* 發表時間: 2015-6-20 10:23:23* 作者: 老王* 被轉發的說說: 沒有* 評論數: 100* 轉發數: 90* 點贊數: 200* 王大錘在2012-8-8 19:26:54注冊了一個賬號(名稱:dachuimeimei@520it.com, 密碼:654321)* 王大錘的生日是1989-9-6 14:16:28* 王大錘在2015-6-21 20:47:09時,轉發了張三之前發布的說說, 并且還附帶了一句話:@“真的很有逼格”

    ?

    @class

    本小節知識點:

  • 【掌握】@class基本概念
  • 【掌握】@class其它應用場景
  • 【掌握】@class和#import

  • 1.@class基本概念

    • 作用

      • 可以簡單地引用一個類
    • 簡單使用

      • @class Dog;
      • 僅僅是告訴編譯器:Dog是一個類;并不會包含Dog這個類的所有內容
    • 具體使用

      • 在.h文件中使用@class引用一個類
      • 在.m文件中使用#import包含這個類的.h文件

    2.@class其它應用場景

    • 對于循環依賴關系來說,比方A類引用B類,同時B類也引用A類
    • 這種嵌套包含的代碼編譯會報錯
    #import "B.h" @interface A : NSObject {B *_b; } @end#import “A.h" @interface B : NSObject {A *_a; } @end
    • 當使用@class在兩個類相互聲明,就不會出現編譯報錯
    @class B; @interface A : NSObject {B *_b; } @end@class A; @interface B : NSObject {A *_a; } @end

    3.@class和#import

    • 作用上的區別

      • #import會包含引用類的所有信息(內容),包括引用類的變量和方法
      • @class僅僅是告訴編譯器有這么一個類, 具體這個類里有什么信息, 完全不知
    • 效率上的區別

      • 如果有上百個頭文件都#import了同一個文件,或者這些文件依次被#import,那么一旦最開始的頭文件稍有改動,后面引用到這個文件的所有類都需要重新編譯一遍 , 編譯效率非常低
      • 相對來講,使用@class方式就不會出現這種問題了

    README

    循環retian

    本小節知識點:

  • 【掌握】循環retian基本概念

  • 1.循環retian基本概念

    • 循環retain的場景

      • 比如A對象retain了B對象,B對象retain了A對象
    • 循環retain的弊端

      • 這樣會導致A對象和B對象永遠無法釋放
    • 循環retain的解決方案

      • 當兩端互相引用時,應該一端用retain、一端用assign

    轉載于:https://www.cnblogs.com/zhoudaquan/p/5016912.html

    總結

    以上是生活随笔為你收集整理的OC基础(15)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。