61.初始化方法

    

1.最常用的初始化
/**

初始化方法

@param type 类型

@return 对象

*/

- (instancetype)initWithType:(EnrollOrderViewControllerType)type

{

self = [super init];

if(self)

{

self.type = type;

}

return self;

}

2.

initWithFrame:frame //纯代码初始化,由用户调用
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
// Initialization code
}
return self;
}
//当代码中没有用nib时,可以用 if (self =[superinitWithFrame:frame])作为条件限制
//对init:可以自定义方法做初始化
- (instancetype)initWithFrame:(CGRect)frame relCourse:(fRelCourse *)item publicCourse:(NSString *)publicCourse{
if (self = [super initWithFrame:frame]){
self.relCourseItem = item;
self.publicCourse = publicCourse;
[self initSubViews];
}
return self;
}

3.

initWithcoder:aDecoder //从nib中加载对象实例时,由框架调用的
- (id)initWithCoder:(NSCoder *)aDecoder {
self = [super initWithCoder:aDecoder];
if (self) {
// Initialization code
}
return self;
}
//用nib加载对象实例时:用 if (self =[super initWithcoder:aDecoder])判断,也可以自己添加初始化条件
- (id)initWithCoder:(NSCoder *)aDecoder
{
if ((self = [super initWithCoder:aDecoder]))
{
[self setUp];
}
return self;
}

4.

awakeFromNib //通过nib文件创建view对象时执行awakeFromNib ,此方法在initWithCoder:之后,在nib文件被加载时调用,此时可以对一些属性重新赋值
- (void)awakeFromNib {
[super awakeFromNib];
//重新赋值一些控件属性
}

5.

initWithNibName: //是延迟加载,这个View上的控件是 nil ,只有到 需要显示时,才会不是 nil
//(默认init方法使用)当需要在init中添加条件时可以重写此方法
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
_isPush = YES;
}
return self;
}
//再通过 initWithNibName来实例化就会默认添加上了 self.isPush = YES;
SelectViewController *selectVC = [[SelectViewController alloc] initWithNibName:nil bundle:nil];

6.

initWithStyle:style reuseIdentifier:reuseIdentifier //指定初始化(一般用作cell中),如果单元格可以复用,则使相同形式的单元格使用相同的重用标识符。
- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier{
if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) {
self.selectionStyle = UITableViewCellSelectionStyleNone;
[self loadSubViews]; //添加cell中要加载的控件
}
return self;
}
//对应的不从xib加载cell 可以选择使用 awakeFromNib

7.

loadNibNamed方法:即时加载,用该方法加载的xib对象中的各个元素都已经存在(cell中用xib拖入的控件)
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
static NSString *VideoCellID = @"VideoCellID"; //重用标示符
VideoCell *cell = [tableView dequeueReusableCellWithIdentifier:VideoCellID];
if (cell == nil) {
cell = [[NSBundle mainBundle] loadNibNamed:@"VideoCell" owner:nil options:nil].lastObject; //加载的cell是VideoCell文件中的最后一个xib
}
}

原文地址:https://www.cnblogs.com/qiangzheVSruozhe/p/9402475.html

时间: 2024-11-10 15:44:16

61.初始化方法的相关文章

caffe中权值初始化方法

首先说明:在caffe/include/caffe中的 filer.hpp文件中有它的源文件,如果想看,可以看看哦,反正我是不想看,代码细节吧,现在不想知道太多,有个宏观的idea就可以啦,如果想看代码的具体的话,可以看:http://blog.csdn.net/xizero00/article/details/50921692,写的还是很不错的(不过有的地方的备注不对,不知道改过来了没). 文件 filler.hpp提供了7种权值初始化的方法,分别为:常量初始化(constant).高斯分布初

第三讲.继承,完整初始化方法,遍历构造器,多态(代码) 另附植物大战僵尸练习

//初始化和遍历构造器使用 //person.h文件 1 #import <Foundation/Foundation.h> 2 3 @interface Person : NSObject 4 5 { 6 7 NSString *_name; 8 int _age; 9 NSString *_sex; 10 11 12 } 13 14 +(id)PersonWithName:(NSString*)name age:(int)age; 15 -(id)initWithName:(NSStrin

UI 指派初始化方法 视图控制器 button响应方法

1 #import "MainViewController.h" 2 3 @interface MainViewController () 4 // 延展 :管理类私有的属性和方法 5 @end 6 7 @implementation MainViewController 8 // 指派初始化方法 9 - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil 10 { 11 self

2015 IOS 学习笔记 面向对象 初始化方法 ——蓝懿教育

今天学习了面向对象以及初始化方法,这个在实际应用中比较重要,也比较抽象,所以要具体在实例中才能理解. ————————面向对象有三大特性—————— 一.封装 封装是对象和类概念的主要特性.它是隐藏内部实现,稳定外部接口,可以看作是“包装”.封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏. 好处:使用更简单变量更安全可以隐藏内部实现细节开发速度加快 OC中一个类可以继承另一个类,被继承的类成为超类(superclass),继承的

数组的初始化方法

//数组的初始化方法 # include<stdio.h> # include<stdlib.h> int main() { int a[3][4]; int num = 0; //方法一: /* for (int i = 0; i < 3 * 4; i++) { a[i / 4][i % 4] = num; num++; } */ //方法二: /* printf("start...\n"); for (int *p = &a[0][0]; p

oc知识点 初始化方法

一继承 继承是面向对象编程的三大特性之一 ,继承既能保证类的完整,又能简化代码 1 没有父类的类称为根类 oc中的根类NSObject 2继承内容:所有的实例变量和方法 3继承是单向的,不能相互继承 4继承具有传递性 5如果子类不满意父类的方法实现可以重写父类的方法 二 super self super 是编译器指令,并非对象    给super发消息可以执行父类方法的实现 self 是系统关键字 self在方法中指带当前的调用者 三 初始化方法 创建对象分为两步: 1为对象开辟空间 2进行初始

OC中的类簇的使用和初始化方法中属性的使用

今天遇到了几个和字符串相关的内存问题,和大家分享一下 NSString *name = [[NSString alloc]initWithString:@"张三"];NSLog(@"%d",[name retainCount]); 这两行代码的打印结果是-1, NSString * aString = [[NSString alloc] initWithFormat:@"123"]; NSLog(@"%d",aString.r

iOS开发之单例模式下的初始化方法

iOS开发之单例模式下的初始化方法 一般的单例我们会这么写 +(instancetype)sharedXXXManager{ static XXXManager *sharedXXXManagerInstance = nil; static dispatch_once_t predicate; dispatch_once(&predicate,^{ sharedXXXManagerInstance = [[XXXManager alloc] initPrivate]; }); return sh

js jquery 页面加载初始化方法

一.js页面加载初始化方法 // 1.在body里面写初始化方法. <body onload='init()'> </body> <script type="text/javascript"> function init(){ // 初始化内容 } </script> // 2.window.onload=function(){} <script type="text/javascript"> window