Objective-C语言的 if ( self = [super init] )22

我们先假设现在自己创建了个类,我们起名叫MyObject,继承于NSObject。
继承知道吧,就是你这个子类(MyObject)如果什么都不写的话,和父类(NSObject)就是一模一样的。
OC里几乎所有的类的根源都是NSObject,都是在NSObject的基础上增加成员变量、函数。
父类不是你自己写的类,你不敢保证它是安全的,能否成功初始化,你有可能不知道里面是什么样子的。

self = [super init],你可能对这步做法可能难以理解。self指向了父类初始化的内存地址。类的初始化函数如果失败会返回nil,随后self也为nil。
那么 if(self = nil),你往下的初始化工作都是对nil做的,初始化失败。
如果还想有更深的理解请看下面一段:
父类进行初始化时,用的是子类对象指针self,父类的init方法有可能对这个指针指向的内存区作了大的变更(有可能把这个指针所指的内存释放了,重新分配了另一块内存区域返回来,这时这个返回的指针与原来的指针是指向不同地址的),所以父类初始化后要重新返回指针。父类返回的和子类的self的类型都为id类型(通用类型)。父类的init方法若返回的指针与self不一样,在父类的init方法中已作了release和新的内存分配,不需要自己再去release self,直接用父类init方法返回的指针就可以了。

if ( self = [super init] )
{
    只要知道你需要在此你初始化的工作即可

}

return self;
<pre name="code" class="html">http://huisheng.fm/user/view/25853
http://huisheng.fm/user/view/25853
http://huisheng.fm/user/view/25855
http://huisheng.fm/user/view/25856
http://huisheng.fm/user/view/25857
http://huisheng.fm/user/view/25858
http://huisheng.fm/user/view/25859
http://huisheng.fm/user/view/25860
http://huisheng.fm/user/view/25861
http://huisheng.fm/user/view/25862
http://huisheng.fm/user/view/25863
http://huisheng.fm/user/view/25864
http://huisheng.fm/user/view/25865
http://huisheng.fm/user/view/25866
http://huisheng.fm/user/view/25867
http://huisheng.fm/user/view/25868
http://huisheng.fm/user/view/25869
http://huisheng.fm/user/view/25870
http://huisheng.fm/user/view/25871
http://huisheng.fm/user/view/25872
http://huisheng.fm/user/view/25873
http://huisheng.fm/user/view/25874
http://huisheng.fm/user/view/25875
http://huisheng.fm/user/view/25876
http://huisheng.fm/user/view/25877
http://huisheng.fm/user/view/25878
http://huisheng.fm/user/view/25879
http://huisheng.fm/user/view/25880
http://huisheng.fm/user/view/25881
http://huisheng.fm/user/view/25882
http://huisheng.fm/user/view/25883
http://huisheng.fm/user/view/25884
http://huisheng.fm/user/view/25885
http://huisheng.fm/user/view/25886
http://huisheng.fm/user/view/25887
http://huisheng.fm/user/view/25888
http://huisheng.fm/user/view/25889
http://huisheng.fm/user/view/25890
http://huisheng.fm/user/view/25891
http://huisheng.fm/user/view/25892
http://huisheng.fm/user/view/25893
http://huisheng.fm/user/view/25894
http://huisheng.fm/user/view/25895
http://huisheng.fm/user/view/25896
http://huisheng.fm/user/view/25897
http://huisheng.fm/user/view/25898
http://huisheng.fm/user/view/25899
http://huisheng.fm/user/view/25900
http://huisheng.fm/user/view/25901
http://huisheng.fm/user/view/25902
http://huisheng.fm/user/view/25903
http://huisheng.fm/user/view/25904
http://huisheng.fm/user/view/25905
http://huisheng.fm/user/view/25906
http://huisheng.fm/user/view/25907
http://huisheng.fm/user/view/25908
http://huisheng.fm/user/view/25909
http://huisheng.fm/user/view/25910
http://huisheng.fm/user/view/25911
http://huisheng.fm/user/view/25912
http://huisheng.fm/user/view/25913
http://huisheng.fm/user/view/25914
http://huisheng.fm/user/view/25915
http://huisheng.fm/user/view/25916
http://huisheng.fm/user/view/25917
http://huisheng.fm/user/view/25918
http://huisheng.fm/user/view/25919
http://huisheng.fm/user/view/25920
http://huisheng.fm/user/view/25921
http://huisheng.fm/user/view/25922
http://huisheng.fm/user/view/25923
http://huisheng.fm/user/view/25924
http://huisheng.fm/user/view/25925
http://huisheng.fm/user/view/25926
http://huisheng.fm/user/view/25927
http://huisheng.fm/user/view/25928
http://huisheng.fm/user/view/25929
http://huisheng.fm/user/view/25930
http://huisheng.fm/user/view/25931
http://huisheng.fm/user/view/25932
http://huisheng.fm/user/view/25933
http://huisheng.fm/user/view/25934
http://huisheng.fm/user/view/25935
http://huisheng.fm/user/view/25936
http://huisheng.fm/user/view/25937
http://huisheng.fm/user/view/25938
http://huisheng.fm/user/view/25939
http://huisheng.fm/user/view/25940
http://huisheng.fm/user/view/25941
http://huisheng.fm/user/view/25942
http://huisheng.fm/user/view/25943
http://huisheng.fm/user/view/25944
http://huisheng.fm/user/view/25945
http://huisheng.fm/user/view/25946
http://huisheng.fm/user/view/25947
http://huisheng.fm/user/view/25948
http://huisheng.fm/user/view/25949
http://huisheng.fm/user/view/25950
http://huisheng.fm/user/view/25951
http://huisheng.fm/user/view/25952
http://huisheng.fm/user/view/25953
http://huisheng.fm/user/view/25954
http://huisheng.fm/user/view/25955
http://huisheng.fm/user/view/25956
http://huisheng.fm/user/view/25957
http://huisheng.fm/user/view/25958
http://huisheng.fm/user/view/25959
http://huisheng.fm/user/view/25960
http://huisheng.fm/user/view/25961
http://huisheng.fm/user/view/25962
http://huisheng.fm/user/view/25963
http://huisheng.fm/user/view/25964
http://huisheng.fm/user/view/25965
http://huisheng.fm/user/view/25966
http://huisheng.fm/user/view/25967
http://huisheng.fm/user/view/25968
http://huisheng.fm/user/view/25969
http://huisheng.fm/user/view/25970
http://huisheng.fm/user/view/25971
http://huisheng.fm/user/view/25972
http://huisheng.fm/user/view/25973
http://huisheng.fm/user/view/25974
http://huisheng.fm/user/view/25975
http://huisheng.fm/user/view/25976
http://huisheng.fm/user/view/25977
http://huisheng.fm/user/view/25978
http://huisheng.fm/user/view/25979
http://huisheng.fm/user/view/25980
http://huisheng.fm/user/view/25981
http://huisheng.fm/user/view/25982
http://huisheng.fm/user/view/25983
http://huisheng.fm/user/view/25984
http://huisheng.fm/user/view/25985
http://huisheng.fm/user/view/25986
http://huisheng.fm/user/view/25987
http://huisheng.fm/user/view/25988
http://huisheng.fm/user/view/25989
http://huisheng.fm/user/view/25990
http://huisheng.fm/user/view/25991
http://huisheng.fm/user/view/25992
http://huisheng.fm/user/view/25993
http://huisheng.fm/user/view/25994
http://huisheng.fm/user/view/25995
http://huisheng.fm/user/view/25996
http://huisheng.fm/user/view/25997
http://huisheng.fm/user/view/25998
http://huisheng.fm/user/view/25999
http://huisheng.fm/user/view/26000
http://huisheng.fm/user/view/26001
http://huisheng.fm/user/view/26002
http://huisheng.fm/user/view/26003
http://huisheng.fm/user/view/26004
http://huisheng.fm/user/view/26005
http://huisheng.fm/user/view/26006
http://huisheng.fm/user/view/26007
http://huisheng.fm/user/view/26008
http://huisheng.fm/user/view/26009
http://huisheng.fm/user/view/26010
http://huisheng.fm/user/view/26011
http://huisheng.fm/user/view/26012
http://huisheng.fm/user/view/26013
http://huisheng.fm/user/view/26014
http://huisheng.fm/user/view/26015
http://huisheng.fm/user/view/26016
http://huisheng.fm/user/view/26017
http://huisheng.fm/user/view/26018
http://huisheng.fm/user/view/26019
http://huisheng.fm/user/view/26020
http://huisheng.fm/user/view/26021
http://huisheng.fm/user/view/26022
http://huisheng.fm/user/view/26024
http://huisheng.fm/user/view/26025
http://huisheng.fm/user/view/26026
http://huisheng.fm/user/view/26027
http://huisheng.fm/user/view/26028
http://huisheng.fm/user/view/26029
http://huisheng.fm/user/view/26030
http://huisheng.fm/user/view/26031
http://huisheng.fm/user/view/26032
http://huisheng.fm/user/view/26033
http://huisheng.fm/user/view/26034
http://huisheng.fm/user/view/26035
http://huisheng.fm/user/view/26036
http://huisheng.fm/user/view/26037
http://huisheng.fm/user/view/26038
http://huisheng.fm/user/view/26039
http://huisheng.fm/user/view/26040
http://huisheng.fm/user/view/26041
http://huisheng.fm/user/view/26042
http://huisheng.fm/user/view/26043
http://huisheng.fm/user/view/26044
http://huisheng.fm/user/view/26045
http://huisheng.fm/user/view/26046
http://huisheng.fm/user/view/26047
http://huisheng.fm/user/view/26048
http://huisheng.fm/user/view/26049
http://huisheng.fm/user/view/26050
http://huisheng.fm/user/view/26051
http://huisheng.fm/user/view/26052
http://huisheng.fm/user/view/26053
http://huisheng.fm/user/view/26054
http://huisheng.fm/user/view/26055
http://huisheng.fm/user/view/26056
http://huisheng.fm/user/view/26057
http://huisheng.fm/user/view/26058
http://huisheng.fm/user/view/26059
http://huisheng.fm/user/view/26060
http://huisheng.fm/user/view/26061
http://huisheng.fm/user/view/26062
http://huisheng.fm/user/view/26063
http://huisheng.fm/user/view/26064
http://huisheng.fm/user/view/26065
http://huisheng.fm/user/view/26066
http://huisheng.fm/user/view/26067
http://huisheng.fm/user/view/26068
http://huisheng.fm/user/view/26069
http://huisheng.fm/user/view/26070
http://huisheng.fm/user/view/26071
http://huisheng.fm/user/view/26072
http://huisheng.fm/user/view/26073
http://huisheng.fm/user/view/26074
http://huisheng.fm/user/view/26075
http://huisheng.fm/user/view/26076
http://huisheng.fm/user/view/26077
http://huisheng.fm/user/view/26078
http://huisheng.fm/user/view/26079
http://huisheng.fm/user/view/26080
http://huisheng.fm/user/view/26081
http://huisheng.fm/user/view/26082
http://huisheng.fm/user/view/26083
http://huisheng.fm/user/view/26084
http://huisheng.fm/user/view/26085
http://huisheng.fm/user/view/26086
http://huisheng.fm/user/view/26087
http://huisheng.fm/user/view/26088
http://huisheng.fm/user/view/26089
http://huisheng.fm/user/view/26090
http://huisheng.fm/user/view/26091
http://huisheng.fm/user/view/26092
http://huisheng.fm/user/view/26093
http://huisheng.fm/user/view/26094
http://huisheng.fm/user/view/26095
http://huisheng.fm/user/view/26096
http://huisheng.fm/user/view/26097
http://huisheng.fm/user/view/26098
http://huisheng.fm/user/view/26099
http://huisheng.fm/user/view/26100
http://huisheng.fm/user/view/26101
http://huisheng.fm/user/view/26102
http://huisheng.fm/user/view/26103
http://huisheng.fm/user/view/26104
http://huisheng.fm/user/view/26105
http://huisheng.fm/user/view/26106
http://huisheng.fm/user/view/26107
http://huisheng.fm/user/view/26108
http://huisheng.fm/user/view/26109
http://huisheng.fm/user/view/26110
http://huisheng.fm/user/view/26111
http://huisheng.fm/user/view/26112
http://huisheng.fm/user/view/26113
http://huisheng.fm/user/view/26114
http://huisheng.fm/user/view/26115
http://huisheng.fm/user/view/26116
http://huisheng.fm/user/view/26117
http://huisheng.fm/user/view/26118
http://huisheng.fm/user/view/26119
http://huisheng.fm/user/view/26120
http://huisheng.fm/user/view/26121
http://huisheng.fm/user/view/26122
http://huisheng.fm/user/view/26123
http://huisheng.fm/user/view/26124
http://huisheng.fm/user/view/26125
http://huisheng.fm/user/view/26126
http://huisheng.fm/user/view/26127
http://huisheng.fm/user/view/26128
http://huisheng.fm/user/view/26129
http://huisheng.fm/user/view/26130
http://huisheng.fm/user/view/26131
http://huisheng.fm/user/view/26132
http://huisheng.fm/user/view/26133
http://huisheng.fm/user/view/26134
http://huisheng.fm/user/view/26135
http://huisheng.fm/user/view/26136
http://huisheng.fm/user/view/26137
http://huisheng.fm/user/view/26138
http://huisheng.fm/user/view/26139
http://huisheng.fm/user/view/26140
http://huisheng.fm/user/view/26141
http://huisheng.fm/user/view/26142
http://huisheng.fm/user/view/26143
http://huisheng.fm/user/view/26144
http://huisheng.fm/user/view/26145
http://huisheng.fm/user/view/26146
http://huisheng.fm/user/view/26147
http://huisheng.fm/user/view/26148
http://huisheng.fm/user/view/26149
http://huisheng.fm/user/view/26150
http://huisheng.fm/user/view/26151
http://huisheng.fm/user/view/26152
http://huisheng.fm/user/view/26153
http://huisheng.fm/user/view/26154
http://huisheng.fm/user/view/26155
http://huisheng.fm/user/view/26156
http://huisheng.fm/user/view/26157
http://huisheng.fm/user/view/26158
http://huisheng.fm/user/view/26159
http://huisheng.fm/user/view/26160
http://huisheng.fm/user/view/26161

<span style="font-family: arial, 宋体, sans-serif, tahoma, 'Microsoft YaHei';">基类里面是不需要这个的,都是在子类里面才用得到。[super init]是使</span>

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-11 09:45:00

Objective-C语言的 if ( self = [super init] )22的相关文章

Objective-C语言的 if ( self = [super init] )

我们先假设现在自己创建了个类,我们起名叫MyObject,继承于NSObject. 继承知道吧,就是你这个子类(MyObject)如果什么都不写的话,和父类(NSObject)就是一模一样的. OC里几乎所有的类的根源都是NSObject,都是在NSObject的基础上增加成员变量.函数. 父类不是你自己写的类,你不敢保证它是安全的,能否成功初始化,你有可能不知道里面是什么样子的. self = [super init],你可能对这步做法可能难以理解.self指向了父类初始化的内存地址.类的初始

关于 objective - C 的 super init

[super init] 的结果可能有三种: 第一种: [super init] 初始化成功,这个是最最正常的情况. 第二种: [super init] 初始化失败,我们都知道oc的两步创建,alloc开辟内存空间,init初始化对象,但是init还有另外一个作用,在初始化失败的时候,init方法会返回一个nil.回头行文的最上面,如果self为nil,那么if(self)语句的内容,将不被执行,已确保程序健壮安全. - (instancetype)init { self = [super in

Objective—C语言的新魅力——Nullability、泛型集合与类型延拓

Objective-C语言的新魅力 一.引言 在Xcode7中,iOS9的SDK已经全面兼容了Objective-C的一些新特性和新功能.这些功能都只作用于编译期,对程序的运行并没有影响,因此,它可以很好的向下进行兼容,无缝的衔接低版本的iOS系统,那么这些特性有什么样的用处呢,作为开发者,我保证你一定会爱上他们,如果你可以将这些新特性都应用于你的开发,你的开发效率和代码质量,相比之前,会有一个很大的提升. 二.Nullability检测的支持 在swift语言中,通过!和?可以将对象声明成Op

iOS核心语言Objective C语言 —— 内存管理

本分享是面向有意向从事iOS开发的伙伴以及苹果产品的发烧友们,或者已经从事了iOS的开发者,想进一步提升者.如果您对iOS开发有极高的兴趣,可以与我一起探讨iOS开发,一起学习,共同进步.如果您是零基础,建议您先翻阅我之前分享的iOS开发分分钟搞定C语言系列,然后在开始Objective C语言的学习,如果您遇到问题也可以与我探讨,另外将无偿分享自己整理出来的大概400G iOS学习视频及学习资料,都是干货哦!可以新浪微博私信?关注极客James,期待与您的共同学习和探讨!!由于时间有限,每天在

[Obj-C笔记] &quot;self = [super init]&quot;的解释与潜藏bug

转自:http://blog.csdn.net/aoyuehan11/article/details/10268231 Objective-C的推荐init方法写法如下: - (id) init { if(self = [super init]) { //为子类增加属性进行初始化 } return self; } 这里涉及了几个问题, 1. [super init]的作用: 面向对象的体现,先利用父类的init方法为子类实例的父类部分属性初始化. 2. self 为什么要赋值为[super in

[转] &quot;self = [super init]&quot;的解释与潜藏bug

Objective-C的推荐init方法写法如下: - (id) init { if(self = [super init]) { //为子类增加属性进行初始化 } return self; } 这里涉及了几个问题, 1. [super init]的作用: 面向对象的体现,先利用父类的init方法为子类实例的父类部分属性初始化. 2. self 为什么要赋值为[super init]: 简单来说是为了防止父类的初始化方法release掉了self指向的空间并重新alloc了一块空间.这时的话,[

init()方法必须使用super.init(config)的原因--Servlet

原 因: 一个servlet在它的init()方法中传递它的ServletConfig实例,在其他的方法中却不可以.当一个servlet在 init()方法外需要调用config对象时就会产生问题.使用super.init(config)语句就解决了这个问题,该语句通过唤醒 GenericServlet的init()方法, 该方法保存了这个config对象的一个引用,以备将来使用.那么,一个servlet是怎样利用这个保存的引用的呢?是通过自身唤醒方法.在执行 中,GenericServlet类

关于 self = [super init];

[plain] view plaincopyprint? - (id)init { self = [super init]; // Call a designated initializer here. if (self != nil) { // 省略其他细节 } return self; } 容易让人困惑的地方在于,将父类初始化之后,将其返回的对象指针覆盖当前对象的指针. 这种方式令人费解,目前暂时找不到官方解释这么做的原因. 官方文档 有解释. 我们先分以下几种情况分别分析:(假设super

self = [super init]

Objective-C的推荐init方法写法如下: - (id) init { if(self = [super init]) { //为子类增加属性进行初始化 } return self; } 返回值为id类型,id类型可以赋值给其他类型指针,其他类型指针也可以赋值给id类型 obc中子类指针不能直接赋值给父类指针 [super init]也是返回self,再不改变self所指向对象的情况下,这个self跟子类的self是一样的,因为转化为消息调用时传入的Receiver都一样 如果在父类中改