亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

iPhone How-to:靜態庫中使用Category

發布時間:2020-06-17 08:46:00 來源:網絡 閱讀:1424 作者:benjielin 欄目:開發技術

   在iPhone開發中,Category是廣泛使用的一種Objective-C的特性,不過如果在靜態庫中如果使用Category就會遇到一些意外的崩潰,原因就是在使用靜態庫的應用中會無法發現庫中Category的聲明。對此stack overflow上也有專門的討論,并提示說要使用-all_load的編譯選項。不過在我實際的項目開發中卻這種方法卻無法解決問題。經過一番調查和嘗試,最終采用的解決辦法就是創建一個冗余類,然后將所有的Category都放在該類的文件中,這樣在無需實例化冗余類的情況就可以騙過編譯器,從而解決了在靜態庫中使用Category會引發的崩潰問題。

CategoryDummy.h文件如下:

@interface CategoryDummy : NSObject {

}

@end

@interface UIButton(Addition)

- (void) addClickHandler:(SEL)onClick forTarget:(id)target;
- (void) setClickHandler:(SEL)onClick forTarget:(id)target;
- (void) setTitle: (NSString*)title;

@end

@interface UIColor (Addition)

+ (UIColor*) colorWithRGB:(Byte)red green:(Byte)green blue:(Byte)blue;

@end

 

CategoryDummy.m文件如下:

#import "CategoryDummy.h"

@implementation CategoryDummy

@end

@implementation UIButton(Addition)

- (void)addClickHandler:(SEL)onClickSel forTarget:(id)target {
    [self addTarget:target action:onClickSel forControlEvents:UIControlEventTouchUpInside];
}

- (void)setClickHandler:(SEL)onClickSel forTarget:(id)target {
    [self removeTarget:target action:NULL forControlEvents:UIControlEventTouchUpInside];
    [self addTarget:target action:onClickSel forControlEvents:UIControlEventTouchUpInside];
}

- (void) setTitle: (NSString*)title {
    [self setTitle:title forState:UIControlStateNormal];
    [self setTitle:title forState:UIControlStateSelected];
    [self setTitle:title forState:UIControlStateHighlighted];
    [self setTitle:title forState:UIControlStateDisabled];
}

@end

@implementation UIColor (Addition)

+ (UIColor*) colorWithRGB:(Byte)red green:(Byte)green blue:(Byte)blue {
    CGFloat fRed = red / 255.0f;
    CGFloat fGreen = green / 255.0f;
    CGFloat fBlue = blue / 255.0f;
    return [UIColor colorWithRed:fRed green:fGreen blue:fBlue alpha:1.0f];
}

@end

  問題是解決了,副作用就是由于所有的Category都和冗余類在同一文件內聲明和實現,導致使用某個Category的時候就需要導入CategoryDummy.h文件,也就意味著導入了所有的Category。Category的文件結構和引入都不單純。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

太白县| 资阳市| 和林格尔县| 通道| 安达市| 鄂托克前旗| 南部县| 新野县| 宝山区| 新源县| 漳平市| 永泰县| 大宁县| 正定县| 岳阳市| 大城县| 台山市| 宁蒗| 泗洪县| 凤冈县| 诸暨市| 济阳县| 榕江县| 哈密市| 伊春市| 瓦房店市| 襄城县| 宜春市| 同江市| 三河市| 江都市| 湖南省| 贵定县| 汤原县| 手机| 永宁县| 六枝特区| 壤塘县| 上高县| 福海县| 中方县|