问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

iOS 基础知识点

发布网友 发布时间:2022-11-15 20:04

我来回答

1个回答

热心网友 时间:2023-08-28 19:42

一、属性修饰符

读写属性: (readwrite/readonly)

语义特性:(内存有关):(assign/retain/copy)

原子特性:(和线程安全有关): (atomicit/nonatomic)

readonly:只读,属性只会生成getter方法,不会生成setter.

readwrite:既可读又可写.属性自动生成setter和getter方法.(默认的读写特性)

getter= 方法名:指定生成getter方法时的方法名.

setter= 方法名:指定生成setter方法时的方法名.

assign: 默认类型,setter方法直接赋值,而不进行retain操作,也可以只针对对象,只是做简单的赋值操作. 默认的语义特性.

retain: 针对于对象类型,setter方法对参数进行release旧值,再retain新值。

copy: setter方法进行Copy操作,与retain一样, 针对于对象类型,会拷贝一个新的对象,将新的对象的引用计数加1

nonatomic: 禁止多线程,变量保护,提高性能

atomic:原子特性,保证线程安全.系统默认的原子特性.

weak:指针指向的地址一旦被释放,这些指针都将被赋值为nil。这样的好处能有效的防止野指针。消除循环引用 。

二、@dynamic 关键字

@dynamic dynamicStr; // 告诉编译器,不自定生成getter和setter方法,避免编译期间产生警告,然后由自己实现存取方法。

三、@synthesize 关键字

@synthesizestrongStr = _strongStr; // 可以定义 与变量名不相同的getter和setter的命名,籍此来保护变量不会被不恰当的访问, 编译器期间,让编译器自动生成getter/setter方法 当有自定义的存或取方法时,自定义会屏蔽自动生成该方法

四、重定义setter方法getter方法

// 重定义setter方法

// 重定义getter方法

五、不可变字符串NSString

// 运行log日志:

2021-03-11 17:30:08.112340+0800 TestObject-C[93449:1623723] temp1: 不可变字符串, 0x10df9e778

2021-03-11 17:30:08.112529+0800 TestObject-C[93449:1623723] str: 不可变字符串, 0x10df9e778

2021-03-11 17:30:08.112610+0800 TestObject-C****[****93449:1623723****]**** strongStr: ****不可变字符串****, 0x10df9e778

六、可变字符串 NSMutableString

// 一、将不可变字符串赋值给可变字符串对象。

// 赋值可变字符串对象后,对象仍然是不可变对象

2021-03-11 17:30:08.114159+0800 TestObject-C[93449:1623723] mTemp: 可变字符串1, 0x10df9e878

2021-03-11 17:30:08.114393+0800 TestObject-C[93449:1623723] mCopyStr: 可变字符串1, 0x10df9e878

2021-03-11 17:30:08.114697+0800 TestObject-C****[****93449:1623723****]**** mStrongStr: 可变字符串****1, 0x10df9e878

// 一、将可变字符串赋值给可变字符串对象。

2021-03-11 19:38:34.493763+0800 TestObject-C[95274:1718783] mTemp2: 可变字符串2, 0x600002710ea0, __NSCFString

2021-03-11 19:38:34.493923+0800 TestObject-C[95274:1718783] mCopyStr: 可变字符串2, 0x6000027110e0, __NSCFString

2021-03-11 19:38:34.494037+0800 TestObject-C****[****95274:1718783****]**** mStrongStr: ****可变字符串****2, 0x600002710ea0, __NSCFString

2021-03-11 19:38:34.494422+0800 TestObject-C[95274:1718783] mTemp2: 可变字符串211, 0x600002710ea0, __NSCFString

2021-03-11 19:38:34.494697+0800 TestObject-C[95274:1718783] mCopyStr: 可变字符串2, 0x6000027110e0, __NSCFString

2021-03-11 19:38:34.494903+0800 TestObject-C****[****95274:1718783****]**** mStrongStr: ****可变字符串****211, 0x600002710ea0, __NSCFString

七、富文本字符串 NSMutableAttributedString

2021-03-11 19:34:52.041131+0800 TestObject-C[95207:1715249] attriStr: 我是富文本我是富文本我是富文本我是富文本, 0x600000a5bc00, NSConcreteMutableAttributedString

2021-03-11 19:34:52.041307+0800 TestObject-C[95207:1715249] mutableAttri: 我是富文本我是富文本我是富文本我是富文本, 0x600000a5be40, NSConcreteAttributedString

2021-03-11 19:34:52.041425+0800 TestObject-C****[****95207:1715249****]**** mutableStrongAttri: ****我是富文本我是富文本我是富文本我是富文本****, 0x600000a5bc00, NSConcreteMutableAttributedString

2021-03-11 19:34:52.041943+0800 TestObject-C[95207:1715249] attriStr: 我是富文本我是富文本我是富文本我是富文本---我是新添加的, 0x600000a5bc00, NSConcreteMutableAttributedString

2021-03-11 19:34:52.042281+0800 TestObject-C****[****95207:1715249****]**** mutableStrongAttri: ****我是富文本我是富文本我是富文本我是富文本****---****我是新添加的****, 0x600000a5bc00, NSConcreteMutableAttributedString

八、不可变数组NSArray

//一、 不可变数组赋值NSArray的对象

2021-03-11 19:04:42.636207+0800 TestObject-C[94739:1689350] arr: (1, 2,
3), 0x600001d5c8d0

2021-03-11 19:04:42.636411+0800 TestObject-C[94739:1689350] persons: ( 1, 2, 3), 0x600001d5c8d0

2021-03-11 19:04:42.636538+0800 TestObject-C[94739:1689350] students: (1, 2, 3), 0x600001d5c8d0

2021-03-11 19:04:42.636646+0800 TestObject-C[94739:1689350] arr: (1, 2, 3), 0x600001d5c8d0

2021-03-11 19:04:42.636767+0800 TestObject-C[94739:1689350] students: (1, 2,3), 0x600001d5c8d0, __NSArrayI

// 二、不可变数组赋值给NSMutableArray的对象

**2021-03-11 19:15:59.046728+0800 TestObject-C[94934:1699039] arr: (1,2,3), 0x600002f6c000
2021-03-11 19:15:59.046878+0800 TestObject-C[94934:1699039] cars: (1, 2,3), 0x600002f6c000, __NSArrayI2021-03-11 19:15:59.046982+0800 TestObject-C[94934:1699039] dogs: (1,2,3), 0x600002f6c000, __NSArrayI

九、可变数组 NSMutableArray

2021-03-11 19:22:39.183745+0800 TestObject-C[95044:1705082] arr2: (2,4,10,12), 0x600000fefea0

2021-03-11 19:22:39.184067+0800 TestObject-C[95044:1705082] cars: (2,4,10), 0x600000fef240, __NSArrayI

**2021-03-11 19:22:39.184272+0800 TestObject-C[95044:1705082] dogs: (2,4,10,12), 0x600000fefea0, __NSArrayM

十、不可变字典 NSDictionary

// 不可变数组赋值给NSDictionary对象

2021-03-11 19:25:32.789615+0800 TestObject-C[95102:1708378] dic: {key1 = 1;key2 = value;}, 0x6000028799c0**

2021-03-11 19:25:32.789801+0800 TestObject-C[95102:1708378] personDic: { key1 = 1;key2 = value;}, 0x6000028799c0, __NSDictionaryI

2021-03-11 19:25:32.789919+0800 TestObject-C[95102:1708378] studentDic: { key1 = 1;key2 = value;}, 0x6000028799c0, __NSDictionaryI

十一、可变字典 NSMutableDictionary

2021-03-11 19:59:28.739545+0800 TestObject-C[96373:1735182] mDic: { key1 = 10;key2 = value2;}, 0x6000017f0700, __NSDictionaryM

**2021-03-11 19:59:28.740177+0800 TestObject-C[96373:1735182] carDic: {key1 = 10;key2 = value2;}, 0x6000017f07a0, __NSFrozenDictionaryM
2021-03-11 19:59:28.740359+0800 TestObject-C[96373:1735182] dogDic: { key1 = 10;key2 = value2;}, 0x6000017f0700, __NSDictionaryM

2021-03-11 20:05:24.028840+0800 TestObject-C[96469:1740141] mDic: {key1 = 10; key2 = value2;key4 = value4;}, 0x6000011bd7e0, __NSDictionaryM
2021-03-11 20:05:24.028930+0800 TestObject-C[96469:1740141] carDic: { key1 = 10; key2 = value2;}, 0x6000011bd820, __NSFrozenDictionaryM
2021-03-11 20:05:24.029028+0800 TestObject-C[96469:1740141] dogDic: {key1 = 10;key2 = value2;key4 = value4;}, 0x6000011bd7e0, __NSDictionaryM

十二、不可变集合 NSSet

// 一、不可变NSSet赋值给NSSet对象

2021-03-11 20:09:49.418694+0800 TestObject-C[96545:1744249] set: {( 1,2,3)}, 0x600003fd2e80, __NSSetI

2021-03-11 20:09:49.418826+0800 TestObject-C[96545:1744249] personSet: {(1,2,3)}, 0x600003fd2e80, __NSSetI
2021-03-11 20:09:49.418914+0800 TestObject-C[96545:1744249] studentSet: {(1,2,3)}, 0x600003fd2e80, __NSSetI

// 二、不可变NSSet赋值给NSMutableSet对象

2021-03-11 20:09:49.419281+0800 TestObject-C[96545:1744249] carSet: {(1,2,3)}, 0x600003fd2e80, __NSSetI

2021-03-11 20:09:49.419362+0800 TestObject-C[96545:1744249] dogSet: {(1, 2,3)}, 0x600003fd2e80, __NSSetI

十三、可变集合 NSMutableSet

2021-03-11 20:18:06.896997+0800 TestObject-C[96705:1752827] mSet: {(3,1,2,5)}, 0x600001e0a700, __NSSetM

2021-03-11 20:18:06.897218+0800 TestObject-C[96705:1752827] carSet: {( 1,2,3)}, 0x600001014bd0, __NSSetI

2021-03-11 20:18:06.897340+0800 TestObject-C[96705:1752827] dogSet: {(3,1,2, 5)}, 0x600001e0a700, __NSSetM

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
这是真的黑米还是假的? 牡丹江市区好玩的地方 显卡问题,现在的显卡显存一般都为多少? 现在主流显存是多少?512M5年后会过时吗 主流家用电脑配置家用电脑买什么样配置比较好 现在的电脑显存一般是多少? 安顺万家领秀城怎么样?好不好?值不值得买? 请问下面一道题怎么加标点 花园里 牡丹 月季 玫瑰 芍药 开得美丽极了... 是什么把大地打扮的这么漂亮呢 是雪呀 这两句话怎么写标点符号? 通州有那些私立高中啊 Yocto系列之一:Yocto简介 麦克维尔空调单冷型报h4是什么原因 麦克维尔空调故障代码26怎么解决 我是三星a5,今天无法充电,充电时手机显示没有充电。请问原因。_百度知 ... 移动硬盘数据能保留多久 一本小说,主角是人族的,穿越到魔界,好像成了一个魔王的儿子,血脉_百度... 孩子学编程猫怎么样 正能量有内涵的昵称2018合集 为什么饮料冰的好喝而牛奶豆奶热的比较好喝 菊花白为什么冰镇的比较好喝? 滚油漆之前,天花不做,只做墙面,家具和门窗有必要帖保护膜做保护吗? 厨房卫生间阳台需要地面保护膜么 x4怎么把布局换成黑色 银川黑客帝国军品户外装备店在银川的撒地方的 AMD羿龙II X4 (黑盒) 系列的955,965,970哪款性价比最高? 小孩先天性右耳道闭塞,现在三周岁半了,能手术治疗吗? 宝马x4黑骑士配有GPF吗 Y 银川发往平凉每天最早的客车是几点? 银川南门广场机场大巴? vivo银川售后电话是多少 秋天伤感的段子(秋天即过) 银行怎么提升客户稳定性 银行临界客户提升落后原因 中国银行对公基础客户和有效客户的定义及提升方法 陶艺制作工艺的基本流程: 陶瓷工艺品怎么加工? 都需要什么机器? 比方往陶瓷上面画画 雕刻 等等... 三公手机的图和介绍 十二生肖。谁还能记得全称? 虎年限量版是什么生肖 鲜活海蟹怎么保存 康尼菲空气炸锅KB2199M是多大容量 空气炸锅什么牌子实用-2021空气炸锅哪个牌子耐用 云上威航app打不开了 荣耀手环怎么设置微信通知-荣耀手环微信消息通知设置 微信公众号文章下的“推广”怎么弄出来的? oppo有智能语音吗 怎样把iPhone 的语音备忘录发送给别人? 把语音备忘录发送给别人的... 我有一台IBM的服务器,现在开不开机了! 开机键按下没反映,不加电??? 信用卡支付保费监管规定