91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

获嘉县| 蒙山县| 措美县| 松潘县| 乌兰浩特市| 凤山市| 韩城市| 会东县| 绥滨县| 涞水县| 临邑县| 伊通| 玉环县| 额敏县| 滨州市| 巫山县| 怀安县| 襄汾县| 宁津县| 田东县| 容城县| 喜德县| 武宣县| 陆川县| 泸州市| 贡觉县| 台南县| 中西区| 靖边县| 邵东县| 汝州市| 馆陶县| 平安县| 韶山市| 东港市| 子洲县| 宝丰县| 阿巴嘎旗| 正蓝旗| 汕尾市| 霞浦县|