以下為mas_equalTo的源碼:
#define mas_equalTo(...) equalTo(MASBoxValue((VA_ARGS)))
mas_equalTo()是對(duì)equalTo()的宏定義,主要是對(duì)equalTo傳入的參數(shù)進(jìn)行類型轉(zhuǎn)換,可以讓其支持基本數(shù)據(jù)類型
以下為equalTo的源碼:
- (MASConstraint * (^)(id))equalTo {
return ^id(id attribute) {
return self.equalToWithRelation(attribute, NSLayoutRelationEqual);
};
}
通過equalTo的源碼可以看出equalTo算是一個(gè)get方法,其返回值為block類型,block中的有一個(gè)參數(shù)類型為id,當(dāng)我們執(zhí)行equalTo方法時(shí),需要為其傳入id類型的參數(shù),所以equalTo不能傳入基本數(shù)據(jù)類型,但可以包裝為NSNumber類型傳入
make.height.equalTo(@100);
總結(jié): mas_equalTo和equalTo實(shí)際上是對(duì)布局的效果一樣的,只是各自類型不同