<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                雖然我們知道這樣寫很丑, 但是我們應該要在我們的 category 方法前加上自己的小寫前綴以及下劃線,比如`- (id)zoc_myCategoryMethod`。 這種實踐同樣[被蘋果推薦](https://developer.apple.com/library/ios/documentation/cocoa/conceptual/ProgrammingWithObjectiveC/CustomizingExistingClasses/CustomizingExistingClasses.html#//apple_ref/doc/uid/TP40011210-CH6-SW4)。 這是非常必要的。因為如果在擴展的 category 或者其他 category 里面已經使用了同樣的方法名,會導致不可預計的后果。實際上,實際被調用的是最后被實現的那個方法。 如果想要確認你的分類方法沒有覆蓋其他實現的話,可以把環境變量 OBJC_PRINT_REPLACED_METHODS 設置為 YES,這樣那些被取代的方法名字會打印到 Console 中。現在 LLVM 5.1 不會為此發出任何警告和錯誤提示,所以自己小心不要在分類中重載方法。 一個好的實踐是在 category 名中使用前綴。 ** 例子 ** ~~~ @interface NSDate (ZOCTimeExtensions) - (NSString *)zoc_timeAgoShort; @end ~~~ ** 不要這樣做 ** ~~~ @interface NSDate (ZOCTimeExtensions) - (NSString *)timeAgoShort; @end ~~~ 分類可以用來在頭文件中定義一組功能相似的方法。這是在 Apple的 Framework 也很常見的一個實踐(下面例子的取自`NSDate` 頭)。我們也強烈建議在自己的代碼中這樣使用。 我們的經驗是,創建一組分類對以后的重構十分有幫助。一個類的接口增加的時候,可能意味著你的類做了太多事情,違背了類的單一功能原則。 之前創造的方法分組可以用來更好地進行不同功能的表示,并且把類打破在更多自我包含的組成部分里。 ~~~ @interface NSDate : NSObject <NSCopying, NSSecureCoding> @property (readonly) NSTimeInterval timeIntervalSinceReferenceDate; @end @interface NSDate (NSDateCreation) + (instancetype)date; + (instancetype)dateWithTimeIntervalSinceNow:(NSTimeInterval)secs; + (instancetype)dateWithTimeIntervalSinceReferenceDate:(NSTimeInterval)ti; + (instancetype)dateWithTimeIntervalSince1970:(NSTimeInterval)secs; + (instancetype)dateWithTimeInterval:(NSTimeInterval)secsToBeAdded sinceDate:(NSDate *)date; // ... @end ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看