ios面试

  1. 驼峰命名 UserSexMan
  2. NSIntegerNSUInteger CGFLOAT
  3. 枚举 typedef NS_ENUM(NSInteger,UserSex){UserSexMan,UserSexWoman}
  4. 字符串 copy
  5. –(instancetype)initwith构造方法 ,+(instancetype)modelwith
  6. Readonly 和 readwrite
  7. 都针对对象,Strong持有对象所有权,weak不持有对象所有权
  8. Weak使用时:委托规避循环引
  9. Storyboard 拖拽控件使用weak
  10. Assign修饰任意类型指针 weak指针对象如果被释放 weak指针自动置为nil assign不会自动置为nil需要手动
  11. Copy(不可变副本) block函数使用 栈区分配小内存nsstringnsarraynsdictionary存在可变类型需要使用mutablecopy(可变副本)
  12. Arc下 weak在dealloc中不需要对其置为nil
  13. Atomic 线程安全的处理 加了个锁 【lock lock】 ,非多线程nonatomic
  14. Nsstringfromclass(【self class】)Self 是当前对象类型名称 super 当前响应消息对象(还是该对象)的父类方法
  15. Class结构体 类的isa指针指向描述一个源类(subclass)(属性列表 方法列表)
  16. 类方法属于类对象 实例方法属于实例对象 类方法类对象调用 实例方法实例对象调用,类方法self表示类对象 实例方法self表示实例对象 类方法不可以方位成员变量 实例方法可以访问成员变量 类方法可以调用类和实例方法 实例方法既可以调用类方法也可以调用实例方法
  17. @synthesize重命名属性
  18. Protocol协议中可以使用属性@property 限定协议接口规范 必须实现此属性
  19. 类别category 中可以使用属性 可以对源类的成员变量和属性公开化
  20. Runtime运行时 可以在运行中添加对象属性obj_setassociatedobject(对象,属性名称,值,类型)obj_getassociatedobject
  21. 浅复制影子 深复制克隆人 销毁后不一样
  22. 类别 创建私有方法的向前引用 分散类的实现 非正式协议
  23. 动态运行时 obj_sendmsg(id reciver ,selector)
  24. Perfomselector(sel)选择器 间接调用方法
  25. 懒汉模式 延迟加载 重写get方法
  26. Frame和bounds cgrect坐标不一样
  27. 推送
  28. Tableview 用flag或属性来关联多个表格
  29. 序列化 Plist文件 coredata sqlite3 nsuserdefault plist识别自定义对象(序列化 ) nsdata data=[nskeyedarchiver archiveddatawithrootobject:对象] 对象必须遵守协议nscoding encodewithcoder 解挡 initwithcoder
  30. 安全释放 需要将指针置空 p release p=nil
  31. 响应者链 userinteractionenabled=yes 开启响应者链中加按钮点击事件
  32. Imagenamed花费内存大 (小图)imagewithcontentsoffile自动释放池和initwithcontentsoffile 手动释放
  33. 沙盒 documents 配置信息 开机动画 背景音乐 plist 图片 library 用户缓存和下载 tmp临时数据
  34. Strong 计数n+1 源对象更新strong会更新
  35. Socket tcpudp服务器监听 等待循环 客户端请求链接ip和端口 连接确认握手
  36. 代理委托
  37. 委托人定义协议委托@protocol entruster_viewcontrollerdelegate -(void)showmsg; @end ,
  38. 执行人是谁@propery(assign,nonatomic)id delegate;
  39. 拜托执行人做某事-(void)tellsomeonedosomthing;{判断执行人能够做某事if(self。Delegate respondstoselector:@selector(showmsg)){self。Delegate performselector:@seletor(showmsg)}}
  40. 执行人实现协议 ,-(void)showmsg{nslog(“”);
  41. 故事中 创建两个人 让委托人的delegate属性执行人是执行人 【委托人 tellsomeonedosomething
  42. 观察者模式
  43. 观察者 注册到系统观察者中心[nsnotificationcenter defaultcenter] addobserver:self selector:@selector(shout) name:@”houseburning” object:nil]
  44. 观察者 -(void)shout{nslog(“dddddddd”)}
  45. 别观察者 观察者中心发出通知 [nsnotificationgcenter defaultcenter] postnoficationname “@”houserburning”,object:nil]
  46. 着火 【house burning】
  47. Mvc model view controller view层构造方法-(instancetype)initwithframe(cgrect)frame中{ 控件成员变量addsubview return self}, 类方法中指定model -(void)setdatamodel:(model_viewcontroller *)datamodel view和model关系 set方法model
  48. 工厂模式 对象创建的时机 核心方法+(fruit)createfruitwithname:(nsstring)fruitname{class class = nsclassfromstring(fruitname); fruit *tempfruit = [class alloc] init]};     fruit *app = [fruitfactury createfruitwithname:@”apple”];
  49. 单例模式单例方法 +(Globle*)shareGloble 必须使用单例方法
  50. Oc支持多重协议 断点调试 控制台输入po 属性 变量 方法
  51. 懒加载就是重写一个控件的get方法
  52. Gcd 队列分为并行和串行队列 串行队列是主队列 并行队列是其他除了主队列的收拾并行队列 串行队列是一个执行完毕后才执行后一个 并行队列是一个任务开始后下一个任务才开始执行
  53. 主线程 dispatch_async(dipathc_get_main_queue().^{1});
  54. 子线程dispatch_async(dispatch_get_global_queue(DISPATHC_QUEUE_PRIORITY_DEFAULT,0),^{1})
  55. BOLCK回调typedef void(^block)(void); @property (copy ,nonatomic) Myblock block;
  56. 控制器__weak Sencondviewcontroller *sec = self 不产生引用计数问题 在block内部使用 block = ^{sec.str=@”1”};
  57. block赋值时候容易产生循环引用
  58. 写法 __block int a=0; block函数内部修改外部变量a的值需要在a定义时加__block修饰值a
  59. Gcd时候必须使用__weak __typeof__(self) weakself = self修饰对象
  60. Base main(继承tabbarcontroller) home(加自定义navgationcontroller)等业务(storyboard) 分层 和协议层 protocol
  61. 通过storyboard获取控制器 let childvc = uistoryboard(name:storyname,bundle:nil).instantiateinitialviewcontrollder()! Addchildviewcontriller(childvc)
  62. Override varpreferredstatusbarstyle:uistausbarstyle重写statusbar
  63. 设置ui 扩展 单独注释 //MARK:设置UI界面 extension homeviewcontroller{ fileprivate func SetupUi(){setupnavgationbar(….)}       fileprivate func SetupNavigationBar(){….}}   事件监听 action:#selector(buntonclick)
  64. 设置时间监听 //MARK:时间监听 extension homeviewcontroller{@objc fileprivate func buntonclick(){……….}}
  65. 扩展 import uikit extension UICOLOR{…….}
  66. 系统类扩充 便利构造函数 convenience init(){init(…..)}
  67. Guard else
  68. 单独创建控件view封装 fileprivate var 重写init (titles:[string]){ titles=titles super.init(frame:frame)}       必须实现required init?(coder aDecoder:NSCoder){fatalError}   //MARK : 设置UI setupui—-setuptitleview—–setupcontentview
  69. For _ in 0..
  70. 存储title样式 参数属性太多 import UIKit     class HYTitleStyle{var height:cgfloat=44}
  71. Swift 懒加载fileprivate lazy varcollectionview:uicollectionview={let layout=,let collecitionview=,datasouce=,registercell,returncollectionview}()
  72. Self不能省略 1方法中与其它标识有重名 2在闭包中self不能省略
  73. Collectionviewispagingenabled = true   bounces=false scrollstotop=false
  74. For subview in contentview.subviews     remove 先清空在加进去
  75. For(I,title) in enumerated(){ ….}
  76. view as! uilable点击的view funcpageview(_ 本身当参数)
  77. setcontentoffset 滚动位移     offset     scollview.scolltoitem滚动到哪个item
  78. 代理继承class轻量
  79. 自定义布局 flowlayout   waterfall 重写布局 override func prepare()方法准备布局 返回布局 ,一个cell对应一个uicollectionviewlayoutattributes来定义属性位置
  80. Layoutattributesforelements 返回布局
  81. Alamofire kingfisher   afnetworkingsdwebimg
  82. 重写navgationcontroller的pushviewcontroller方法 重写pushviewcontroller
  83. Viewwillappear方法中隐藏头部setnavgationbarhidden   消失时viewwilldisappear 显示
  84. 取系统手势放入 addgestureregongnizer(interactivepop)取得系统手势tap的action和target:运行时 class_copyivarlist 拷贝所有的属性() 遍历ivar_getname(ivars[int(i)])
  85. 粒子动画 发射器和粒子 touchesbegan{caemitterlayer发射器 caemittercell 粒子}
  86. 面向协议开发必须遵守是uiviewcontroller protocol text{} extension text where Self:uiviewcontroller{ func text(){}}
  87. 代替for let layer=layer.sublayers?.filter({$0.iskind(of:caemitterlayer.self)}).first?.removeFromsuperlayer()     链式编程
  88. 按钮的开始停止 click(sender){ isselected = !sender.isselected sender.isselected ? start(): stop()}
  89. Uistackview 控件组
  90. 协议开发快速创建类方法 class func loadformnib()->Self{} 结构体 枚举 使用静态方法
  91. 网盘下载
  92. 你可能感兴趣的:(技术)