重命名符號,修改屬性或方法的名字。 固然有可能您用的是全局Replace這個方法,可是這個沒法替換Class的文件名。 演示下將TestViewController的.h .m .xib及用到的地方修改成有意義的命HomeViewController。bash
重命名Property操做也同上。因此看到不符合規範的變量名和方法名及類名,快速的修改吧,提升代碼的可讀性。網絡
封裝代碼。 有時候在鍵盤上大步流星的敲寫代碼,發現一個方法中超過了200行的代碼,要進行方法的分割。如提取通用的代碼,方法其餘方法調用。用Extract很簡單。 操做以下:函數
- (void)extracted_method
New function是新函數,C語言的函數。eg.
void extracted_function()
由原來的ui
- (void)layoutSubviews
{
[super layoutSubviews];
NSInteger count = [self.subviews count];
for (int i = 0; i < count; i++) {
UIButton *btn = self.subviews[i];
btn.tag = i;
CGFloat x = i * self.bounds.size.width / count;
CGFloat y = 0;
CGFloat width = self.bounds.size.width / count;
CGFloat height = self.bounds.size.height;
btn.frame = CGRectMake(x, y, width, height);
}
}
複製代碼
修改成spa
- (void)updateButtonFrame
{
NSInteger count = [self.subviews count];
for (int i = 0; i < count; i++) {
UIButton *btn = self.subviews[i];
btn.tag = i;
CGFloat x = i * self.bounds.size.width / count;
CGFloat y = 0;
CGFloat width = self.bounds.size.width / count;
CGFloat height = self.bounds.size.height;
btn.frame = CGRectMake(x, y, width, height);
}
}
- (void)layoutSubviews
{
[super layoutSubviews];
[self updateButtonFrame];
}
複製代碼
減小不少複製黏貼。3d
建立超類。code
點擊Save,再點擊Continue。cdn
完成blog
將實例變量,property變量或方法移動到超類。 移動方法舉例 方法申明繼承
- (void)updateUserInfo;
複製代碼
方法實現
- (void)updateUserInfo
{
NSLog(@"Hello World!");
}
複製代碼
啥都沒有顯示,點擊Save
#import <UIKit/UIKit.h>
@interface BaseViewController : UIViewController
- (void)updateUserInfo;
@end
複製代碼
將實例變量移動到子類。
@interface BaseViewController (){
NSString *schoolNameStr;
}
複製代碼
在子類HomeViewController中,能夠看到schoolNameStr變量。
@interface HomeViewController : BaseViewController {
NSString *schoolNameStr;
}
複製代碼
建立Setter和Getter方法。 只能對實例變量進行操做,對property無效。
@interface HomeViewController ()
{
NSString *nameStr;
}
複製代碼
- (NSString *)nameStr {
return nameStr;
}
- (void)setNameStr:(NSString *)newValue {
nameStr = newValue;
}
複製代碼
Setter和Getter的方法生成完成。
// END