ISO开发笔记(一)

 

  • Objective-c注释
  1. //单行注释
  2. /* 多行注释 */

 

  • 今天遇到一个比较诡异的报错,Editor placeholder in source file  ,调试半天也没有解决。最后将报错的函数代码剪切,然后粘贴一下,莫名其妙的解决了。

 

  • UIView的生命周期

UIView加载时函数的执行顺序

  1. init
  2. willMoveToSuperview
  3. didMoveToSuperview
  4. willMoveToWindow
  5. willMoveToWindow

自定义一个类,继承UIView,分别重载上述5个函数,代码如下所示,分别在5个函数中打印出日志,可以在output窗口里看到打印出的日志,通过打印日志的顺序可以看出UIView周期顺序。

@interface MyView : UIView
@end

@implementation MyView

- (instancetype)init{
    self=[super init];
    if (self) {
        
    }
    NSLog(@"=========in MyView.init 函数里");
    return  self;
}

-(void)willMoveToSuperview:(nullable UIView *)newSuperview{
    
    [super willMoveToSuperview:newSuperview];
    NSLog(@"=========in MyView.willMoveToSuperview 函数里");
    
}

- (void)didMoveToSuperview{
    [super didMoveToSuperview];
    NSLog(@"=========in MyView.didMoveToSuperview 函数里");
}

- (void)willMoveToWindow:(nullable UIWindow *)newWindow{
    
    [super willMoveToWindow:newWindow];
    NSLog(@"==========in MyView.willMoveToWindow 函数里");
}
- (void)didMoveToWindow{
    [super didMoveToWindow];
    NSLog(@"===========in MyView.didMoveToWindow 函数里");
}

@end

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    
    NSLog(@"=========in ViewController.viewDidLoad 函数里");
    
    MyView *view1 =[[MyView alloc] init];
    view1.backgroundColor = [UIColor greenColor];
    view1.frame = CGRectMake(150, 150, 100, 100);
    [self.view addSubview:view1];
}


@end

 

输出日志如下:

2020-03-08 22:15:39.456638+0800 SimpleApp[5159:803168] =========in ViewController.viewDidLoad 函数里

2020-03-08 22:15:39.456998+0800 SimpleApp[5159:803168] =========in MyView.init 函数里

2020-03-08 22:15:39.457202+0800 SimpleApp[5159:803168] =========in MyView.willMoveToSuperview 函数里

2020-03-08 22:15:39.457366+0800 SimpleApp[5159:803168] =========in MyView.didMoveToSuperview 函数里

2020-03-08 22:15:39.465428+0800 SimpleApp[5159:803168] ==========in MyView.willMoveToWindow 函数里

2020-03-08 22:15:39.465751+0800 SimpleApp[5159:803168] ===========in MyView.didMoveToWindow 函数里

 

 

你可能感兴趣的:(IOS,Objective-c,ios,objective-c,xcode)