iOS笔记1

作者: 红树_ | 来源:发表于2018-12-29 10:42 被阅读24次

    笔记

    note.jpg
    1. iPad2的硬件不支持OpenGLES3.0,支持2.0,其创建的纹理需要是2的幂,大于实际需要的纹理大小即可;USB通信需要MFI认证:(。
    2. 创建自定义viewController与xib关联时要指定file's owner,还要把viewController的view与xib的root view连线。
    3. RPScreenRecorder sharedRecorder stop后要显示录制到的视频的预览页RPPreviewViewController必须先用变量持有它的引用,然后再presentViewController
    4. AsyncUdpSocket.h的包发送是在当前线程的runloop中,子线程中需要手动启动runloop,线程不安全;早期版本没有使用arc,需要在compile sources中加上-fno-objc-arc的compile flag。
      GCDAsyncUdpSocket.h的包发送是用gcd dispatch到初始化时同一个serial队列中,保证了线程安全。
    5. 观察程序运行后xcode对cpu和memory的监听,如果memory一直在增长,说明有内存泄漏的c/c++代码,控制台可能会打印ReceiveMemoryWarning。
    6. UIResponder:事件响应链,UIApplication->AppDelegate->UIWindow-> UIViewController-> UIViewController的view->superview->view,这个类被UIApplication、AppDelegate 、UIViewController、UIView等类继承;可通过响应链向上查找对应的UIViewController单例。
    7. UIGestureRecognizer可取消接收cancel事件cancelsTouchesInView,还有delaysTouchesBegan、delaysTouchesEnded等设置;UIGestureRecognizerDelegate代理,name打印。
    8. touchesBegan、touchesMoved、touchesEnded、touchesCancelled应该总是使用参数touches的UITouch,event参数都是相同的,event的allTouches是event触发的包括本view还有其他的所有的UITouch
    9. 播放音频pcm流,使用c++实现的OpenAL比oc实现的AudioQueue的实现实测要好不少,原理一般都是乒乓方式交错处理buffer。
    10. iOS序列化与反序列化,这个一句代码用runtime实现的不错。
    11. NSUndoManager有时候会用到。

    十年磨一剑

    相关文章

      网友评论

        本文标题:iOS笔记1

        本文链接:https://www.haomeiwen.com/subject/cffulqtx.html