init代表的是初始化方法。 initWithframe代表的是带参的初始化方法。 例如: UIView *view = [[UIView alloc] init]; UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0,0,100,100)]; 这两个有什么区别呢?? 明显,下面那个initWithFrame是带一个名为Frame参数的。 需要我们传参给初始化方法给他。 那么具体的区别就在于你想不想再初始化的时候就赋值frame值。 如果你不想再初始化的时候赋值frame,那就用第一个初始化方法,是最纯洁的初始化方法,什么参数都不带。 你想在后面赋值frame可以这样: UIView *view = [[UIView alloc] init]; view.frame = CGRectMake(0,0,100,100); 上面的两句话和UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0,0,100,100)];是一样的。 注意: 很重要的一点:所有类都继承自NSObject,而NSObject里面有init。 所以所有类都可以拥有init这个方法。