本文旨在总结iOS知识网络,知识点,该知识网络罗列出常见UIKit、Foundation的对象特点和一些使用经验,可以看成是一本书;文本编辑采用树的形式,对知识点进行罗列,并标注一些使用经验(希望对初学者有用或给一些解决疑难杂症者提供思路;某些知识点会深入探讨;通过总结希望站在一个较高平台的角度全观Objective-C。知识树中有些是原创文章,有些则是转载网络上iOS大神的文章。由于篇幅的限制笔者会简洁地介绍各个知识点,读者可通过链接了解详情。当然一个人的知识面是相当有限的,在给各位读者提供知识参考的同时,欢迎大家对本文提意见。

                             /->UIViewController
|        ViewController在iOS只是一个非常重要的概念【翻译】,其在一个App中所扮演的角色:
|            (1) View Management:管理View     (2) Data Marshalling:管理数据
|            (3) User Interactions:响应用户交互 (4) Resource Management:管理资源
|            (5) Adaptivity:适配不同的屏幕尺寸空间的变化
|         生命周期一片枫叶点击 另外一篇点击
|        + (void)initialize +(void)load 的调用时机,区别点击
|        ViewDidLoad调用时机:当view被首次使用的时候,某些情况可提升性能
|        横竖屏的坑【点击】。APP整体是竖屏,单个controller可以是横屏的
|         两种交互方式:push和present
|            左右滑动 - (void)pushViewController:(UIViewController *) animated:(BOOL)
|            模态,从下往上弹出 - (void)presentViewController:(UIViewController *) animated: (BOOL) completion:
|            Can't add self as subview 这个crash是由于快速push两个UIViewController导致的【点击】
|         一次dissmiss多个 present controller
                                |                UIViewController *rootVC = self.presentingViewController;
                                |                while (rootVC.presentingViewController) 
                                |                    rootVC = rootVC.presentingViewController;
                                |                [rootVC dismissViewControllerAnimated:YES completion:nil];
                                |        ★pop到rootcontroller    [UINavigationController popToRootViewControllerAnimated:]
|        还有一种:直接把Controller的view添加到另一个Controller上。
|-> UIView
                             |        
frame 和bound 的区别点击
                             |            frame 是相对父试图坐标的值; bound是本身坐标系统的值                            
|        
layoutSubviews点击 需要将[super layoutSubviews];放到最后,不然iOS7有可能会有这个崩溃
                             |                 "Auto Layout still required after executing -layoutSubviews” iOS7上崩溃sdk缺陷 点击
                             |                layoutSubviews在以下情况下会被调用:
                             |                1、init初始化不会触发layoutSubviews。
                             |                2、addSubview会触发layoutSubviews。
                             |                3、设置view的Frame会触发layoutSubviews,当然前提是frame的值设置前后发生了变化。
                             |                4、滚动一个UIScrollView会触发layoutSubviews。
                             |                5、旋转Screen会触发父UIView上的layoutSubviews事件。
                             |                6、改变一个UIView大小的时候也会触发父UIView上的layoutSubviews事件。
                             |                7、直接调用setLayoutSubviews。
                             |        每一个视图有唯一的父视图点击。addsubview操作把它从上一个父试图中移除
                             |        善于使用hidden 使用animateWithDuration简单地控制页面切换效果
                             |        使用animateWithDuration简单地控制页面切换效果点击
                             |        简单动画 animateWithDuration点击
                             |        ★因为UIView没有实现copy协议,因此找不到copyWithZone方法,使用copy的时候导致崩溃,但是我们可以通过归档再解档实现copy,这相当于对视图进行了一次深拷贝

                             |       UIView事件击穿,扩大按钮响应区域,通过重写hittest方法实现。【点击】
                             |->CALayer
                             |        CALayer是个简单的类,它是用来在屏幕上显示内容展示的矩形区域.容芳志出品点击
                             |        直接从NSObject继承,少了UIResponder类,固CALayer悲催的不能响应任何用户事件点击
|-> UIWindow
|            
每一个IOS程序都有一个UIWindow【译文】
                             |            UIWindow有三个层级,分别是Normal,StatusBar,Alert点击
                             |            keyWindow是指定的用来接收键盘以及非触摸类的消息,
                             |            而且程序中每一个时刻只能有一个window是keyWindow。
                             |-> UIImage
                             |        加载图片几种方式点击
                             |            [UIImage imageNamed:@“xxx”] 系统缓存到cache中
                             |            [UIImage imageWithContentsOfFile:path] 不缓存
                             |            [UIImage imageWithData:data]  不缓存
                             |           ★ 拉伸图片,四角保持不变 resizableImageWithCapInsets:
                             |           ★ 加载gif图片点击
                             |-> UILabel点击
                             |            没有居上居下对齐,可以使用TTTAttributedLabel
                             |           ★   重写drawTextInRect:方法,可以自定义绘制区域,比如可设置Inset
                             |            [super drawTextInRect:UIEdgeInsetsInsetRect(rect, self.textInsets)];                            
                             |           ★  设置行间距,通过设置label的attributedText来实现

                          /    
        /-> UIKit 
        |                 \                  
        |                    |-> UIButton

        |                    |            设置颜色,文字一定要指定button状态
        |                    |            善于使用contentEdgeInsets,imageEdgeInsets titleEdgeInsets可以设置文本边距点击
        |                    |            设置圆角可layer.cornerRadius
        |                    |            UIButton 设置 imageView frame是无法改变大小的,大小就是图片的大小【点击】
        |                    |            设置button上的title左对齐。仅仅设置label是没用的,需要:

        |                    |            ★ btn.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft;

        |                    |            去掉系统的按下高亮置灰效果 [btn setAdjustsImageWhenHighlighted:NO];

        |                    |-> UITextfield 
|
                    |        隐藏键盘,[textfield resignFirstResponder]
        |                    |        ★ 任意页面隐藏键盘点击
        |                    |-> UIScrollerView
|
                    |        上拉下拉原理点击
      |                  |        Apple不建议在UIScrollerView上添加UITableview Important: You should not embed UIWebView or UITableView objects in UIScrollView objects. If you do so, unexpected behavior can result because touch events for the two objects can be mixed up and wrongly handled.
        |                    |-> UITableView
|
                    |        复用,注意重写 - (void)prepareForReuse
        |                    |        ★ 在-(void)layoutSubviews中设置subview的frame。否则frame总是(320,44)
        |                    |        dequeueReusableCellWithIdentifier 从重用池中获取,可能是nil
        |                    |        dequeueReusableCellWithReuseIdentifier 同上,但是不会是nil
        |                    |        插入,删除,移动section或item的顺序,需遵循下面两个步骤点击
        |                    |            1. 更新dataSource的数据
        |                    |            2. 调用相应的collection view方法删除或者插入section或item
        |                    |        非常严格的条件:,在更新collection view之前,先更新datasource,
        |                    |        因为collection view总是假设你已经准备好打他source了 否则collection view收到错误的item,并造成crash
        |                    |        右侧音序条点击
        |                    |        UITableView上拉、下拉原理点击
        |                    |        AsyncDisplayKit 流畅的解决方法点击
        |                    |        tableView 在更改dataSource后需要立即调用reloadData,否则只要UI有刷新必crash。
        |                    |        tableView 在调用reloadData后,短时间内不要更改dataSource,尤其是将dataSource清空,否则只要ui有刷新必crash
        |                    |        tableView正在滚动的时候,如果reloadData,偶尔发生App crash的情况点击
        |                    |        UITableview Deceleration 加速滑动(惯性滑动)、弹性回归原理点击
        |                    |        UITableview 刷新某一个cell 或 section【点击】
        |                    |        UITableview 上拉隐藏搜索框,下拉出现搜索框【点击】
        |                    |        UITableview 是在willDisplayCell: 还是在cellForRowAtIndexPath: update data 呢?【点击】
        |                    |        UITableview UITableViewStylePlain模式,header不浮动【点击】

 

        |                    |        UITableview 当tableview的section比较多时候,内容也比较复杂,比如设计多个http接口。在更新tableview的时候一定要注意清除旧数据
        |                    |-> UITableViewCell 
        |                    |        UITableViewCell changes the background color of all sub views when cell is selected or highlighted.意思就是说当UITableViewCell被选中或者高亮的时候,它的所有子view的颜色都会改变。
        |                    |       所以建议一般设置cell.selectionStyle = UITableViewCellSelectionStyleNone;

        |                    |-> UIDevice
|                    
|        设备名 [UIDevice currentDevice].name,
        |                    |        系统版本号 [[UIDevice currentDevice].systemVersion doubleValue]; 点击
        |                    |        屏幕旋转方向 [[UIDevice currentDevice] orientation]
        |                    |        区分iPad还是iPhone [UIDevice currentDevice].userInterfaceIdiom);
        |                    |-> UIScreen
| 
                 |        如何正确的绘制1像素的线点击
        |                  |        保证边距不变,内容等比例拉伸点击
        |                  |-> UIEdgeInsets
        |                    |       
实际显示边距,跟设置边距的距离点击
        |                    \->自动布局
|                             
Masonry 高级一点用法【多个label,可变长情况下使用Masonry】【点击】
        |                             storyboard
        |                             在autolayout之前还有一种技术叫autoresizingmask,功能少一些。兄弟视图之间约束比较费劲
        |
        |                    /-> NSObject 既是对象也是协议,可以将对象自动置nil 比如 int = 0 bool = NO
|                  |      几乎所有类的基类或者协议点击
        |                 |        类对象:程序中第一次使用该类的时候被创建,在整个程序中只有一份(类的实例则有多份)此后每次使用都是这个类对象,它在程序运行时一直存在点击

        |                 |        isKindOfClass:和isMemberOfClass:,通过这两种方法可以确定一个类的从属关系\
        |                 |               后者测试一个接收器是否是一个指定类的实例;而后者可以测试类的从属关系。
        |                 |       respondsToSelector: 方法测试一个接收器是否通过selector实现(implements)了一个标志符话的方法
        |                 |       description方法,允许一个对象返回一个字符串来描述它的内容;这个常用于调试debug
        |                 |       encodeWithCoder: 和 initWithCoder:方法,NSCoding协议中仅有的组成成员\
        |                 |               第一个允许对象编译它的实例变量,第二个允许一个对象初始化它自身的解码实例变量。
        |                 |       conformsToProtocol:方法,测试接收器(对象或者类)符合一个给定的协议(protocol)
        |                 |       类对象中的 isa 指向类结构被称作 metaclass点击跟[object class]有点区别,比如KVO的时候
        |                 |       __weak如何实现对象值自动设置为nil的点击

       |                 |       如何判断两个对象相等,需要重写isEqual:方法和hash方法。虽然hash是为了对象加入set或者你是NSArray时候用的。但是判断两个对象是否相等,可以先hash,如果hash都不一样那么肯定不一样,接下来才是isEqual:方法的比较点击。使用hash只是提高判断效率。

        |                 |       任何 Objective-C 都有 hash 方法,该方法返回一个 NSUInteger,是该对象的 hashCode单击

        |                 |       任[self class]和 [super class]问题:self 是类的隐藏的参数,指向当前当前调用方法的类;super并不是隐藏的参数,它只是一个“编译器指示符”,它和self指向的是相同的消息接收者。所以两者都指向本类。点击
|                 |-> NSString & NSMutableString
|                    |       
NSString作为属性时候,用copy还是strong修饰?如果只是NSString没什么copy和strong区别。
        |                    |      当NSString对象指向NSMutableString的时候,strong是单纯的增加对象的引用计数,而copy操作是执行了一次深拷贝点击】
|                 |-> NSArray & NSMutableArray
|                    |
       NSArray 各种遍历方式,倒序遍历点击
        |                    |       NSArray简便初始化方法@[@"1",@"2"];
        |                    |       浅拷贝。数组本身使用地址,但是数组item仍是旧对象Apple 官方解释点击
        |                    |           无论copy、arrayWithArray、copyWithZone 数组内对象并没有变。
        |                    |           只是copy出来的array是新地址,arrayWithArray出来的数组也是新地址。
        |                    |       深拷贝。数组本身使用地址,但是数组item是新地址
        |                    |           [[NSArray alloc] initWithArray:someArray copyItems: YES]; 
        |                    |           深拷贝时候,数组中的item必须实现NSCopying协议并实现copyWithZone:
        |                    |       防止NSArray was mutated while being enumerated
        |                    |       array包含array的情况深拷贝。NSArray* trueDeepCopyArray = [NSKeyedUnarchiver \        
        |                    |               unarchiveObjectWithData: [NSKeyedArchiver archivedDataWithRootObject:oldArray]];
        |                    |       containsObject 注意:在对比数组中元素的时候,调用元素的isEqual的返回值。
        |                    |-> NSDictionary & NSMutableDictionary
        |                    |       取值时候,最好判断object的类型。    if ([object isKindOfClass:[NSString class]]){ //todo};
        |                    |-> NSNumber 和 NSInteger NSRange
        |                    |          前者专门用来装基础类型的对象,把整型、单精度、双精度、字符型等基础类型存储为对象
        |                    |-> NSNull  FMDB数据库,使用的时候崩溃
        |                    |           JsonKit转换以后会生出相应的[NSNull null]对象点击
        |                    |-> NSData 字节缓冲区
        |                    |          + (nullable instancetype)dataWithContentsOfURL:(NSURL *)url
        |                    |          dataWithContentsOfURL 虽然是同步的,但可以结合gcd 异步加载网络图片【点击】
        |                    |-> NSUserDefaults点击
        |                    |            可用于APP setting 默认值不好用,SDK bug 
        |                    |            设置WebVIew的UA点击
        |                    |-> NSDate & NSDateFormatter & NSCalendar
        |                    |            可判断过去几个小时,还是几天 - (NSDateComponents *) components:fromDate:toDate:options:
        |                    |           可获取时间戳
        |                    |           有时候有8小时的时差,解决办法点击

        |                    |           在开发iOS程序时对日期处理的总结点击
        |                    |           当新的一天来到,或者说当运营商时间更新的时候,UIApplication会下发一个通知:UIApplication-SignificantTimeChangeNotification

        |                    |           当系统的区域格式,或者时间格式(是否24小时制)改变时,下发通知:NSCurrentLocale-DidChangeNotification

        |                    |-> NSCoding & NSCoder 仅有的两个方法,数据的序列号和反序列化点击       
        |                    |            - (void)encodeWithCoder:(NSCoder *)aCoder;
        |                    |            - (nullable instancetype)initWithCoder:(NSCoder *)aDecoder;
        |                    |-> NSCopying & NSZone
        |                    |          + (instancetype)allocWithZone:深拷贝,类似于memcpy这样的C方法点击
        |                    |-> NSAutoreleasePool
        |                    |          降低内存峰值点击
        |                    |          在Runloop休眠前(kCFRunLoopBeforeWaiting)时候释放自动释放池中的对象
        |                    |-> NSFileManager 删除文件的时候先判断是否存在是个好习惯
        |                    |-> NSTimer
        |                    |
        NSTimer 简单使用 点击
        |                    |        ★ NSTimer定时器时间并不精确,类似于公交车进站,堵车就不准时点击
        |                    |-> NSLog暴力打印,常用于测试点击
        |                    |-> NSClassFromString  从字符串获取类。NSStringFromClass,从类名获取字符串
        |                    |        ★ 不要小瞧这两个API,配合使用,他可以做到代码逻辑解藕的效果。
|                /    
|-> Foundation      
|                 \
    
        |                    |-> NSIndexPath 链式结构;tableview用的比较多点击
        |                    |           初始化 [NSIndexPath indexPathForRow:0 inSection:1];
        |                    |-> NSError 网络变成经常用到
        |                    |-> NSException
        |                    |-> NSStringEncoding NSString的编码格式,了解即可点击
        |                    |-> NSProgressIndicator
        |                    |-> NSBundle 是个目录,包含了程序使用的资源,如图像,声音,编译好的代码,nib文件点击
        |                    |-> NSNetServiceBrowser
        |                    |-> NSValue 可以包装任意一个对象,可以用NSValue将struct存到NSArray和NSDictionary中。点击

 

        |                    |-> NSURLConnection iOS9已不再使用
        |                    |-> NSURLSession & NSURLSessionTask 点击NSURLSession提供的功能:
        |                    |            通过URL将数据下载到内存点击
        |                    |            通过URL将数据下载到文件系统
        |                    |            将数据上传到指定URL
        |                    |            在后台完成上述功能点击
        |                    |-> NSURLRequest 包装了网络请求的信息点击
        |                    |-> NSInputStream & NSOutputStream socket编程点击 
        |                    |-> NSPredicate 
        |                    |            谓语查询,原理和用法都类似于SQL中的where点击
        |                    |-> NSLayoutConstraint 现在都用masonry
        |                    |-> NSLock & NSRecursiveLock & NSCondition 多线程锁
        |                    |          最基本的同步锁点击
        |                    |          @synchronized{//todo} 同样也是同步锁点击
        |                    |          事实上信号量也能实现锁的目的,信号量和锁的区别点击第二篇点击
        |                    |-> NSMethodSignature        
/                      |         配合NSInvocation实现消息转发点击
iOS                       |-> NSInvocation 直接调用 某个对象的消息点击
      \                      |          iOS中可以直接调用 某个对象的消息 方式有2种performSelector:withObject: 和NSInvocation
        |                    |          当然,还以用C语言的函数指针,参见下面的“方法调配技术
        |                    |-> NSSet 无序的对象集合,用处少
        |                    |-> NSUrl 基本使用,包含File URL和File path点击
        |                    |-> AVPlayer基本使用点击
        |                    |           获取视频时间长度 点击
        |                    \-> NSNotificationCenter 同步的机制点击注意防止重复,相似的机制还有delegate,observer,block
        |
        |                    /-> 创建push原理介绍、证书制作、测试push 专辑 点击
|                    |       "iOS push全方位解析(一)【译文】"——iOS PUSH概述点击
|                    |       "iOS push全方位解析(二)【译文】"——生成OpenSSL证书,Provisioning Profile点击
|                    |       "iOS push全方位解析(三)【译文】"——一个极简的demo,并测试一下push点击
|               /
|-> Push         
        |               \
|                    |
       
 iOS6、7、8、9 Push的演化 点击,但目前还是不尽人意(APP 无法获取通知栏消息数目)
|                    |       ★ php写的可以在本机发送iOS push程序点击
|                    |        iOS7 Background Remote Notification(后台远程通知——静默push)点击
        |                    \-> 有一些三方push SDK:极光push
|

|-> block 必须掌握
        |             block专辑点击;Block带有局部变量的匿名函数;iOS开发尤其实用
        |              【block编程第一篇】 block编程热点介绍(官方文档翻译的)【点击
        |              【block编程第二篇】 block捕获变量和对象【点击
        |              【block编程第三篇】block内存管理——如何验证block在栈上,还是堆上点击
        |              【block编程第四篇】block的实现【点击
        |              【block编程第五篇】block中使用 weak–strong dance 技术避免循环引用【点击
        |-> 多线程
        |            iOS有三种多线程编程的技术,分别是:点击
        |                 1、NSThread 下面会讲到
        |                 2、Cocoa NSOperation 下面会讲到
        |                 3、GCD 下面会讲到
        |                这三种编程方式从上到下,抽象度层次是从低到高的,抽象度越高的使用越简单。
        |            dispatch_once 执行一次,用于创建单例【点击】可满足线程安全
        |           iOS 不像C++ 那样,可以直接将构造函数设成private所以创建绝对单例模型需重写allocWithZone,点击
        |                
|                       /-> 引用计数(retainCount)
|                       |       retain 引用计数+1 对象alloc时,引用计数为1, release引用计数-1.引用计数=0时候,真正释放
|                       |       autoRelease,自动释放对象点击
|                       |-> 便捷构造方法 iOS
|                       |          对象在自动释放池中,不需要开发者手动释放,比如下面的方法
|                       |          NSString的stringWithString
|                       |          NSArray的arrayWithObjects:和arrayWithArray:
|                       |          UIImage的imageNamed:
|                       |-> 内存管理高级指南官方译点击
        |                       |-> 内存管理实践点击
|                     /
|-> 内存管理专栏点击
|                     \
|                       |-> MRC
手动引用计数。release和retain成对儿
|                       \->ARC 自动引用计数
|                            强烈建议使用ARC
|                            禁止在函数内返回局部变量指针,不然就是野指针!
|                            容易引起循环引用的地方点击
        |                            - (id)performSelector:(SEL)aSelector withObject:(id)object;引起警告
        |                                    warning:performSelector may cause a leak because its selector 点击
        |
|-> 进程间通信(APP间通信)点击】【点击】
        |                 iOS可通过URL Scheme,调用别的APP(iOS内的应用调用协议),APP 实现 - (BOOL)application: openURL: options: 
        |
        |                            /-> Runtime 运行时特点《运行时之一:类与对象》南峰子出品 点击
        |                            |        Objective-C程序员可以在程序运行时创建,检 查,修改类,对象和它们的方法【点击】
        |                            |        Objective-C runtime库也负责找出方法的最终执行代码
        |                            |        class  Objective-C类是由Class类型来表示的,它实际上是一个指向objc_class结构体的指针。
        |                            |                struct objc_class {
        |                            |                    Class isa  OBJC_ISA_AVAILABILITY;
        |                            |                #if !__OBJC2__
        |                            |                    Class super_class                       OBJC2_UNAVAILABLE;  // 父类
        |                            |                    const char *name                        OBJC2_UNAVAILABLE;  // 类名
        |                            |                    long version                                 OBJC2_UNAVAILABLE;  // 类的版本信息,默认为0
        |                            |                    long info                              OBJC2_UNAVAILABLE;  // 类信息,供运行期使用的一些位标识
        |                            |                    long instance_size                       OBJC2_UNAVAILABLE;  // 该类的实例变量大小
        |                            |                    struct objc_ivar_list *ivars            OBJC2_UNAVAILABLE;  // 该类的成员变量链表
        |                            |                    struct objc_method_list **methodLists   OBJC2_UNAVAILABLE;  // 方法定义的链表
        |                            |                    struct objc_cache *cache             OBJC2_UNAVAILABLE;  // 方法缓存
        |                            |                    struct objc_protocol_list *protocols    OBJC2_UNAVAILABLE;  // 协议链表
        |                            |                #endif
        |                            |                } OBJC2_UNAVAILABLE;       
        |                            |                1. isa:所有的类自身也是一个对象,这个对象的Class里面也有一个isa指针,它指向metaClass
        |                            |                2. super_class:指向该类的父类,如果该类已经是最顶层的根类,则super_class为NULL。
        |                            |                3. cache:用于缓存最近使用的方法。提高方法查找效率
        |                            |        objc_object与id objc_object是表示一个类的实例的结构体
        |                            |                struct objc_object {
        |                            |                    Class isa  OBJC_ISA_AVAILABILITY;
        |                            |                };
        |                            |                typedef struct objc_object *id;
        |                            |           当创建一个类的实例对象时,分配的内存包含objc_object数据结构,然后是类的实例变量的数据。
        |                            |           NSObject类的alloc和allocWithZone:方法使用函数class_createInstance来创建objc_object数据结构。
        |                            |           另外还有我们常见的id,它是一个objc_object结构类型的指针。id 其实就是一个 struct objc_object 类型的指针。但是 id 不是 NSObject * ,为什么可以指向任意的 NSObject 对象呢?因为 objc_object 只有一个 Class 类型的 isa 变量,而这个结构,恰恰和 NSObject 的定义一致
        |                            |        meta class元类,是一个类对象的类;它存储着一个类的所有类方法。
        |                            |           当我们向一个对象发送消息时,runtime会在这个对象所属的这个类的方法列表中查找方法;
        |                            |           而向一个类发送消息时,会在这个类的meta-class的方法列表中查找。

        |                            |        继承体系【点击】
|
                            |        动态创建类【点击】
        |                            |            objc_setAssociatedObject点击给对象增加属性,一般配合类别使用        
        |
                            |            object_getClass  得到一个实例的类点击
        |                            |            objc_copyImageNames  获取指定类所在动态库南峰子出品点击
        |                            |            objc_copyClassList  创建并返回一个指向所有已注册类的指针列表点击
        |                            |        class_xxx系列函数点击
        |                            |            class_copyPropertyList  获取类的属性
        |                            |            class_addMethod 为类添加方法 
        |                            |            class_isMetaClass 判断是否为元类
        |                            |            class_getName 获取类名
        |                            |            class_copyIvarList 拷贝类的实例变量列表,注:这里特别要指出的是实例变量列表中的实例变量的定义如下,它包含了变量的名称、类型、偏移等,但却不包括变量的值-----值在对象而非类中
        |                            |            class_getInstanceMethod 获取实例方法
        |                            |-> Runnloop  ibireme出品 点击
        |                            |        RunLoop 实际上就是一个对象,这个对象管理了其需要处理的事件和消息
        |                            |        并提供了一个入口函数来执行上面 Event Loop 的逻辑
        |                            |        Run Loop并非iOS平台专属的概念,在任何平台的多线程编程中,为控制线程生命周期【点击】
        |                            |        接收处理异步消息,都需要类似Run Loop的循环机制来实现:从简单的一个无限顺序
        |                            |        do{sleep(1);//执行消息}while(true),到高级平台,如Android的Looper,都是类似的机制。
        |                            |        放在下一个runloop执行,保证当前执行正确【点击】
        |                            |       Runnloop基本作用  点击
        |                            |        ·保持程序的持续运行(比如主运行循环)
        |                            |        ·处理App中的各种事件(比如触摸事件、定时器事件、Selector事件)
        |                            |        ·节省CPU资源,提高程序性能:该做事时做事,该休息时休息
        |                            |       Runnloop应用
        |                            |        ·NSTimer 默认是NSDefaultRunLoopMode,滑动时候定时器不计时
        |                            |        ·ImageView显示 当用户在拖拽时(UI交互时)不显示图片,拖拽完成时显示图片
        |                            |        ·PerformSelector  设置运行模式
        |                            |        ·常驻线程 经常在后台进行耗时操作,如:监控联网状态,扫描沙盒等 不希望线程处理完事件就销毁,保持常驻状态
        |                            |        ·自动释放池 在休眠前(kCFRunLoopBeforeWaiting)进行释放,处理事件前创建释放池,中间创建的对象会放入释放池
        |                      |       PerformSelecter 当调用 NSObject 的 performSelecter:afterDelay: 后,实际上其内部会创建一个 Timer
        |                         |                 并添加到当前线程的 RunLoop 中;所以如果当前线程没有 RunLoop,则这个方法会失效【点击】
        |                          /
|-> iOS 动态机制
|                          \ 

        |                            |->  OC .(点)与->(箭头)用法区别。前者是访问setter和getter方法,后者是直接访问变量。
        |                            |-> 消息传递 objc_msgSend点击南峰子出品 点击
        |                            |           obj-c脱胎于smalltalk的消息处理。所有方法调用都是发消息。消息是啥?一串字符【点击】
        |                            |           如果向某对象传递消息,那就会使用动态绑定机制来决定需要调用的方法
        |                            |           objc_msgSend有两个隐藏参数,消息接收对象 方法的selector ,即(self,_cmd)
        |                            |-> 消息转发 message forwarding点击        
        |                            |            就是对象在接收到无法解读的消息之后会发生什么情况
        |                            |            (1) +(BOOL) resolveInstanceMethod:(SEL)selector 类是否新增一个实例方法
        |                            |            (2) resolveClassMethod 是否新增了类方法
        |                            |            (3) -(id) forwardingTargetForSelector:(SEL)selector 能不能把这条消息转给其他接收者来注册 
        |                            |            (4)-(void) forwardInvocation:(NSInvocation*)invocation  消息派发系统
        |                            |            (5)最后若都不能处理消息,则doesNotRecognizeSelector: 会抛出异常
        |                            |            当我们不能确定一个对象是否能接收某个消息时,会先调用respondsToSelector:来判断一下
        |                            |-> SEL【点击】
        |                            |            SEL又叫选择器,是表示一个方法的selector的指针,每一个方法都对应着一个SEL。
        |                            |            OC在编译的时候,会根据方法的名字(包括参数序列),生成一个用 来区分这个方法的唯一的一个ID
        |                            |                这个ID就是SEL类型的。需要注意的是,只要方法的名字(包括参数序列)相同,那么它们的ID都是相同的。
        |                            |                就是 说,不管是超类还是子类,不管是有没有超类和子类的关系,只要名字相同那么ID就是一样的
        |                            |            方法的定义体里面,我们可以通过访问_cmd得到这个方法自己的SEL。 
        |                            |-> 方法调配技术 method swizzling 用于调试南峰子出品点击
        |                            |            IMP 它是objetive-C 方法(method)实现代码块的地址,实际上是函数指针,指向方法实现的首地址
        |                         |                IMP imp = [requestItem.delegateTarget methodForSelector:selector];
        |                         |                void (*func)(id, SEL, ResponseItem *) = (void *)imp;
        |                          |                func(requestItem.delegateTarget, selector, responseItem);
        |                            |            可以从selector获取IMP,比如:- (IMP)methodForSelector:(SEL)aSelector;
        |                            |            Swizzling应该总是在+load中执行
|                           \-> 事件响应链点击另外一篇点击
        |                                        在 iOS 中,几乎所有类都是 responder,比如 UIWindow、UIView、UIControl、UIControllers 等
        |                                        当手指去触摸屏幕上 UIView 的实例对象 aView。产生一个触摸事件 UIEventTypeTouches
        |                                        而接收触摸事件的对象 aView,就是一个 responder object。
        |                                        initial view –> super view –> …..–> view controller –> window –> Application –> AppDelegate
|                        
|
                              /-> 沙盒(Sandbox)iOS沙盒机制容芳志出品点击
        |                              |        每个应用程序都有自己的存储空间
        |                              |         应用程序不能翻过自己的围墙去访问别的存储空间的内容
        |                              |         应用程序请求的数据都要通过权限检测,假如不符合条件的话,不会被放行。
        |                           |-> Group iOS8+数据共享,例如扩展(Extension)共享数据点击
        |                           |-> Spotlight iOS9+ 系统搜索。官方demo点击
        |                           |-> GCD(Grand Central Dispatch) iOS开发有一个强有力的多线程工具 点击
        |                              |            多线程入门raywenderlich出品 点击        
        |                              
|            系统提供一个叫做 主队列(main queue)
        |                              |            系统还提供一个叫做全局调度队列(Global Dispatch Queues)有四个优先级
        |                              |            开发者自己创建队列(串行,或者并行)
        |                              |            至少有五个队列任你处置:主队列、四个全局调度队列,再加上任何你自己创建的队列。
        |                              |            GCD 深入理解:第一部分点击
        |                              |            GCD 深入理解:第二部分点击
        |                              |            开发常见方法介绍
        |                              |                  dispatch_after 延后工作
        |                              |                  Dispatch Groups 会在整个组的任务都完成时通知你
        |                              |            dispatch_semaphore_t  信号量,让你控制多个消费者对有限数量资源的访问。点击
        |                              |            dispatch_semaphore_wait  使得信号量-1,当=0时候阻塞
        |                              |            dispatch_semaphore_signal  释放信号量,即信号量+1
        |                              |            信号量也可以实现两个异步操作,都完成时(即相互等待)。再执行一些操作。
        |                              |            
        |                              |-> CoreData数据持久化,相比sqlite有下面优势点击
        |                              |          数据库字段或者表有更改会导致crash,CoreData的版本管理和数据迁移变得非常有用,\
        |                              |          手动写sql语句操作还是麻烦一些。
        |                              |          不光能操纵SQLite,CoreData和iCloud的结合也很好,如果有这方面需求的话优先考虑
        |                              |          并不是直接操纵数据库,比如:使用CoreData时不能设置数据库的主键,目前仍需要手动操作。
        |                              |          效率上其实跑程序时感觉不出来,毕竟手机上的数据不能跟网站的数据和访问量相提并论。
        |                           /
        |-> 特殊封装&平台特性
|                           
\  
|                          |-> 类别(Category)扩展(Extension)的
区别点击extension是在编译期的,它就是类的一部分;category是运行时期决议的,工作原理点击
        |                              |         堪称iOS编程的精髓点击念茜出品点击
        |                              |-> KVC 键值编码
        |                              |          在IOS的中,没有绝对的私有,包括方法和变量,可以通过字符获取属性点击
|                           |-> KVO 键值观察,依赖isa-swizzling技术王中周出品 点击
|                           |        依赖Runtime 和KVC 一个新的类会动态被创建。详细原理点击另外一篇点击
|                           |        同时派生类还重写了 class 方法以“欺骗”外部调用者它就是起初的那个类。
|                           |        然后系统将这个对象的 isa 指针指向这个新诞生的派生类,因此这个对象就成为该派生类的对象了,
|                           |        因而在该对象上对 setter 的调用就会调用重写的 setter,从而激活键值通知机制
|                           |        Person在建立KVO监听前和之后的打印输出 self->isa:Person    [self class]:Person 
        |                               |                    self->isa:NSKVONotifying_Person   [self class]:Person  
|                           |        比如:Tableview上拉下拉动画检测offset;播放视频,获取视频时长时候等
|                           |        为什么KVO不成对儿调用,会崩溃?
|                           |-> 多任务
|                               |      
后台运行一段时间(不是地图,voip类app)点击
|                           |-> 3D Touch ,通过在plist中添加菜单,然后app实现下面的方法。进入APP
|                           |               - (void)application: performActionForShortcutItem: completionHandler:
|                           |-> spotlight 通过系统搜索,进入APP点击
|                           \-> Touch ID 如何使用iOS 8 指纹识别,代码、实例点击
        |-> HTTPs  
|                 建立安全链接
        |                         之前做过一段IM,对基本建立安全链接略知一二点击
        |                 HTTPS进阶【点击】【本人总结】
        |                         一句话概括https的ssl加密过程:整个加密过程涉及:非对称加密和对称加密两种技术,其中非对称加密
        |                         (由于RSA计算速度特别慢,无法对大量信息加密)用于简历安全链接,确保server和客户端
        |                          的合法(这需要证书机制);对称加密,则基于刚刚的安全链接之上,对传输内容的加密(加密速度很快)
        |                         整个过程需要4次握手
        |
\-> iOS工具
转屏。APP本身是竖屏,但是某一个页面需要横屏【点击】
CrashHlytics Crash统计工具
AFNetworking 和 ASIHttp
SDImage
TMCache
AsyncDisplayKit 是 Facebook 推出的用于保持界面流畅性的框架
------------------------------------------------------------------------------------------
参考文献:《Objective-C高级编程:iOS与OS X多线程和内存管理》日本人写的;
《Effective Objective C 2.0:编写高质量iOS与OS X代码的52个有效方法》;
《Objective-C基础教程(第2版)》        

网络博客参考(无循序):念茜、南峰子、ibireme、容芳志、唐巧、王巍、董柏然、阮一峰、一片枫叶,王中周,颐和园等博主

参考的公众帐号:《iOSDevTips》即唐巧的公众帐号;《iOSDevTip》

 

完整的UIKit和Foundation 结构 <点击>

查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. Zabbix sql最新注入漏洞及其利用探讨

    simeon 在企业和个人安全意识不断增强,对有安全防护的企业来说,渗透比过去相对困难一些,而一些对硬件、资产等管理平台仍然存在弱口令等漏洞,一旦通过这些漏洞打开入口,将对企业安全造成巨大的威胁。Zabbix 是用得非常广泛的网络监测软件,其存在sql注入,声称可以获取管理…...

    2024/4/20 1:37:08
  2. 服务器--Tomcat配置2个或多个同时运行(Linux)

    一、问题说明今天操作Linux部署项目的时候,公司领导要求,只给一个服务器,但是有2个项目要部署,而且需要独立分开运行。二、实现过程Linux配置两个或多个Tomcat,一个Tomcat对应部署一个项目即可。文章以配置2个tomcat为例,如果想启动多个可以依此法类推……2.1 配置profil…...

    2024/5/10 9:29:17
  3. 小程序开发之【前端开发】【学习第二节】【一】

    学习前必须了解的:得了解到小程序视图层WXML,WXSS,以及逻辑层JS,这些是小程序开发的核心内容。小程序框架将整个系统划分为视图层和逻辑层,视图层由框架设计的标签语言(WeiXin Markup Language)和用于描述WXML组件样式的WXSS(WeiXin Style Sheets)组成,它们的关系就像…...

    2024/4/17 18:42:41
  4. Cocos2d-x 2.0 网格动画深入分析

    [Cocos2d-x相关教程来源于红孩儿的游戏编程之路CSDN博客地址:http://blog.csdn.net/honghaier]红孩儿Cocos2d-X学习园地QQ2群:44208467 加群写:Cocos2d-x 红孩儿Cocos2d-X学习园地QQ群:249941957 [暂满]加群写:Cocos2d-x 本章为我的Cocos2d-x教程一书初稿。望各位看官多提…...

    2024/5/10 11:09:35
  5. 通过sql注入窃取用户数据库信息

    一、SQL注入的定义SQL Injection ,即SQL注入,是指攻击者通过注入恶意的SQL命令,破坏SQL查询语句的结构,从而达到执行恶意SQL语句的目的。SQL注入漏洞的危害是巨大的,常常会导致整个数据库被“脱裤”,尽管如此,SQL注入仍然是现在最常见的Web漏洞之一。二、实现SQL注入“脱…...

    2024/5/3 15:25:58
  6. 网文作者的三道坎

    分享17k创始人血酬2007年旧文,时隔已久,文中所言仍具有现实意义。▼(一)这是年前,我和一个作者讨论的时候,想写的东西。因为时间少,所以分段开始写。从一个最新最新的入站作者,到一个近乎于神的名家天王,能保证写一本红一本,这里面至少有三道坎。第一个,是签约并完成…...

    2024/4/18 11:06:38
  7. 服务器--Tomcat配置400/404/500自定义错误页面

    一、说明1、web系统开发过程中经常遇见400/404/500类型的错误页面,对于开发人员而言见到这种页面多了可能觉得问题不大,但是实际运用当中是面向客户的,需要配置一个合理的自定义错误页面。 2、本文只提Tomcat设置400/404/500自定义错误页面(推荐),Springmvc controller配…...

    2024/5/10 11:54:04
  8. 安全漏洞扫描之Sql注入解析

    对于Web系统,要防范Sql注入|XSS(跨站脚本攻击)等其他攻击,一般处理方法是针对攻击的关键子进行过滤。这里针对Sql注入和XSS攻击防范方法提供使用的说明。 一、Sql注入防范 1、过滤Sql关键字 大家都知道Web服务器核心实现就是Servlet技术,servlet的过滤器可以对请求Header,请…...

    2024/4/17 18:43:28
  9. Java源码解析视频

    spring源码解析:链接:https://pan.baidu.com/s/1SudihLhZAv5c2NMljbjCUA 提取码:or4n springmvc源码解析:链接:https://pan.baidu.com/s/1g3AElydxL5eloww1pwcm_w 提取码:igpc mybatis源码解析链接:https://pan.baidu.com/s/18436lc6QD4KuqaCZN7IYyw 提取码:m052...

    2024/4/20 7:38:35
  10. web前端项目开发流程

    开发流程 图解需求 评审 召集需求涉及到的UI、开发、产品、测试人员整理业务流程,同步信息,明确分工 明确需求目的,考虑当前需求设计是否可满足目的 整理流程中如果涉及的其他人员,则召集商讨 如需求设计上影响现有业务功能,应要求产品重新设计实现方案,然后重新评审 注意…...

    2024/5/10 9:44:27
  11. Tomcat配置文件修改无效自动恢复还原的解决办法总结

    今天产品中集成一个报表,遇到诸多问题,其他一个很奇葩的问题就是,修改Tomcat几个配置文件,一直不起作用,启动调试了好几次才发现的,修改了一启动服务就恢复最初的配置信息了,真是奇葩。查了查知道原因了,因为我用的是eclipse,MyEclipse是不会遇到这个问题的,因为ecli…...

    2024/4/18 2:56:45
  12. DedeCMS反馈页面SQL注入漏洞

    DedeCMS反馈页面SQL注入漏洞描述: 目标网站存在SQL注入漏洞。 1.SQL注入攻击就是攻击者通过欺骗数据库服务器执行非授权的任意查询过程。 - 收起 2.漏洞形成原因:DedeCMS的plus\feedback.php中对变量 $typeid未做过滤,导致SQL注入漏洞。 危害: 被SQL注入后可能导致以下后果…...

    2024/4/25 6:00:32
  13. XNA Shader

    XNA Shader编程教程1-环境光照 Shader简史在DirectX8之前,GPU使用固定方式变换像素和顶点,即所谓的“固定管道”。这使得开发者不可能改变像素和顶点转化和处理的进程,使大多数游戏的图像表现看起来非常相。DirectX8提出了顶点和像素着色器,这让开发者可以在管道中决定如何…...

    2024/4/19 20:29:26
  14. Java架构师视频+授课资料

    近期整理了Java架构师相关视频和资料,供大家学习,获取链接在文末。若链接失效请留言. 一、视频部分截图二、资料部分截图链接:https://pan.baidu.com/s/1RHh5XsxJlMMRj3fejTKEdA 密码:79d6 欢迎加入公众号:三才猫,分享架构知识和阿里内推。...

    2024/4/17 18:43:10
  15. javascript前端开发环境sublime 配置

    当前eclipse 是 jsp的主要开发环境。但eclipse对javascript、html、css等格式的文件类型支持不够好。sublime 是非常流行的前端开发工具。在前端开发方面,它的语法高亮、代码折叠、插件支持做的非常优秀,有效地提高了开发效率。下面介绍下它的安装方法。详细步骤指南1.下载安…...

    2024/4/20 12:31:25
  16. 解决tomcat配置环境变量失败

    不能没有JAVA_HOME环境变量,不然即使java变量配置成功 start.bat也不能找到jdk...

    2024/4/18 16:15:11
  17. SQL注入攻击的原理及其防范措施

    ASP编程门槛很低,新手很容易上路。在一段不长的时间里,新手往往就已经能够编出看来比较完美的动态网站,在功能上,老手能做到的,新手也能够做到。那么新手与老手就没区别了吗?这里面区别可就大了,只不过外行人很难一眼就看出来罢了。在界面的友好性、运行性能以及网站的安…...

    2024/4/23 21:50:43
  18. SpringBoot内置tomcat配置SSL证书

    1.将阿里云域名 cyclothe.com 解析成www.cyclothe.com 到你的服务器下2.将域名对应的443 80 端口开发安全组, 浏览器默认对80端口隐藏3.去阿里云的域名中申请免费的ssl证书, 下载tomcat版4.将下载好的文件放到resource下5.配置你的yml文件:server:port: 443 #服务端口…...

    2024/4/20 4:38:19
  19. h5前端开发老师

    【兄弟连h5前端24小咨询热线:400-700-1307 QQ:3256649897 ◆学H5就找“兄弟连h5”◆】兄弟连web前端怎么样?兄弟连培训机构主要是针对无经验零基础的学员,h5前端开发老师,培训老师好坏看老师的培训实力,兄弟连H5前端老师都是刚从一线工作三年左右下来,并讲课一年是最合适…...

    2024/4/20 16:19:06
  20. Web常见安全漏洞-SQL注入

    SQL注入攻击(SQL Injection),简称注入攻击,是Web开发中最常见的一种安全漏洞。 可以用它来从数据库获取敏感信息,或者利用数据库的特性执行添加用户,导出文件等一系列恶意操作, 甚至有可能获取数据库乃至系统用户最高权限。而造成SQL注入的原因是因为程序没有有效过滤用…...

    2024/4/20 10:51:10

最新文章

  1. Php 如何使用进程

    在PHP中&#xff0c;使用进程主要依赖于pcntl扩展&#xff0c;这是一个用于实现Unix风格的多进程编程的扩展 使用pcntl扩展 安装与启用pcntl扩展&#xff1a; 在大多数PHP发行版中&#xff0c;pcntl可能默认未启用。你需要确保它在php.ini文件中被激活&#xff0c;或者在编译P…...

    2024/5/10 12:04:11
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/5/9 21:23:04
  3. ssm框架中各层级介绍

    1、Spring&#xff08;业务逻辑层&#xff09;&#xff1a; Spring框架提供了依赖注入&#xff08;DI&#xff09;和面向切面编程&#xff08;AOP&#xff09;等功能&#xff0c;可以帮助管理Java应用程序中的对象依赖关系和提供横切关注点的支持。 在SSM框架中&#xff0c;S…...

    2024/5/10 0:21:53
  4. 如何设计一个类似Dubbo的RPC框架

    首先有个注册中心,提供的服务在注册中心注册保留各个服务的信息,用zookeeper来做。然后消费者需要去注册中心拿对应的服务信息,而且每个服务可能会存在于多台机器上。接着就发起一次请求了,怎么发起?基于动态代理,面向接口获取到一个动态代理,就是接口在本地的一个代理,…...

    2024/5/7 12:15:09
  5. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/5/8 6:01:22
  6. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/5/9 15:10:32
  7. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/5/4 23:54:56
  8. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/5/9 4:20:59
  9. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/5/4 23:54:56
  10. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/5/4 23:55:05
  11. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/5/4 23:54:56
  12. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/5/7 11:36:39
  13. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/5/4 23:54:56
  14. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/5/6 1:40:42
  15. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/5/4 23:54:56
  16. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/5/8 20:48:49
  17. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/5/7 9:26:26
  18. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/5/4 23:54:56
  19. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/5/8 19:33:07
  20. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/5/5 8:13:33
  21. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/5/8 20:38:49
  22. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/5/4 23:54:58
  23. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/5/10 10:22:18
  24. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/5/9 17:11:10
  25. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  26. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  27. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  28. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  29. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  30. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  31. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  32. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  33. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  34. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  35. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  36. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  37. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  38. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  39. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  40. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  41. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  42. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  43. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  44. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57