美文网首页
OC常用代码(非UI)

OC常用代码(非UI)

作者: Look2021 | 来源:发表于2018-11-20 10:19 被阅读0次

---------------多线程---------------

dispatch_group_t group = dispatch_group_create();
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_group_enter(group);
dispatch_async(queue, ^{
  dispatch_group_leave(group);
});
dispatch_group_notify(group, dispatch_get_main_queue(), ^{

});

---------------通知---------------

 //发送通知
NSNotification *notification = [NSNotification notificationWithName:KaddOthersNotification object:nil];
[[NSNotificationCenter defaultCenter] postNotification:notification];
//接受通知
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(hiddenGrayBackView) name:KOthersNotification object:nil];
//移除通知,谁创建,谁移除
[[NSNotificationCenter defaultCenter] removeObserver:self];

---------------枚举---------------

typedef NS_ENUM(NSInteger, XMGType)
{
    XMGTypeTop,
    XMGTypeBottom,
};

---------------NSString---------------

//从字符串中抽出数字(抽出价格)
NSString *totalStr = [[_amountLab.text componentsSeparatedByCharactersInSet:[[NSCharacterSet characterSetWithCharactersInString:@"0123456789."] invertedSet]] componentsJoinedByString:@""];

---------------NSDictionary---------------

//判断字典是否包含特定Key值
[[dict allKeys] containsObject:@"orderId"]
//字典转移
NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithDictionary:self.wayArray[indexPath.row]];
NSMutableDictionary *dict = [self.wayArray[indexPath.row] mutableCopy];

---------------NSArray---------------

//把数组倒序
[[self.listArr reverseObjectEnumerator] allObjects];

关于使用NSMutableArray,removeObjectAtIndex出现错误.
直接进行赋值,会让NSMutableArray转变为NSArray.这样执行 removeObjectAtIndex就会不成功,造成crash.
规范:
[self.historyArr addObjectsFromArray:data];

---------------待分类---------------

//多线程,同步。我用于,只有等网络请求完成,并且保存数据后,才能跳转页面
dispatch_group_t group = dispatch_group_create();//创建一个调度任务组group
dispatch_group_enter(group);
dispatch_group_leave(group);//有enter就必须要有leave
dispatch_group_notify(group, dispatch_get_main_queue(), ^{
      //只有等group里的任务都执行完毕后才会来到该方法
});

//3秒后执行wait方法,用于SVProgressHUD
[NSTimer scheduledTimerWithTimeInterval:3 target:self selector:@selector(wait) userInfo:nil repeats:NO];

//虚线代码
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0),^{
        CGFloat lenghts[] = {4.0f,4.0f};
        UIImage *image = [UIImage imageWithColor:kPSThemeWeakColor10 size:CGSizeMake(SCREEN_WIDTH - 50, 0.5) dashLineLengths:lenghts counts:2];
        dispatch_async(dispatch_get_main_queue(), ^{
            _lineView.image = image;
        });
    });

Xcode头文件锁定
1, 打开终端
2, 前往Xcode.app, 命令: cd /Applications/Xcode.app
3, 把头文件修改为只读, 命令: sudo chown -hR root:wheel Contents
4, 缓存完成, 重启Xcode更新

显示隐藏文件defaults write com.apple.finder AppleShowAllFiles -bool true
隐藏隐藏文件defaults write com.apple.finder AppleShowAllFiles -bool false
命令行终端敲入命令:last | grep reboot (查看开机时间记录)
命令行终端敲入命令:last | grep shutdown (查看关机时间记录)

//将data数据转换成16进制的字符串
+ (NSString *)hexStringFromData:(NSData *)myD{  
    Byte *bytes = (Byte *)[myD bytes];
    //下面是Byte 转换为16进制。
    NSString *hexStr=@"";
    for(int i=0;i<[myD length];i++)
    {
        NSString *newHexStr = [NSString stringWithFormat:@"%x",bytes[i]&0xff];///16进制数
        if([newHexStr length]==1)
            hexStr = [NSString stringWithFormat:@"%@0%@",hexStr,newHexStr];
        else
            hexStr = [NSString stringWithFormat:@"%@%@",hexStr,newHexStr];
    }
    NSLog(@"hex = %@",hexStr);
    return hexStr;
}

---------------加密---------------

//md5加密
- (NSString *) md5:(NSString *) input {
    const char *cStr = [input UTF8String];
    unsigned char digest[CC_MD5_DIGEST_LENGTH];
    CC_MD5( cStr, strlen(cStr), digest ); // This is the md5 call
    
    NSMutableString *output = [NSMutableString stringWithCapacity:CC_MD5_DIGEST_LENGTH * 2];
    
    for(int i = 0; i < CC_MD5_DIGEST_LENGTH; i++)
        [output appendFormat:@"%02x", digest[i]];
    
    return  output;
}

相关文章

  • OC常用代码(非UI)

    ---------------多线程--------------- ---------------通知------...

  • OC常用代码记录(UI)

    ---------------UIWindow------------- ---------------Navig...

  • 总纲

    一句代码创建常用UI控件类与对象OC中面向对象的编程思想OC基础语法复习OC中的协议OC中的block学习导航栏按...

  • iOS 15的适配

    demo:oc代码:https://github.com/xinsun001/iOS-15UI-oc.git[ht...

  • swift常用UI控件的使用方法

    对于习惯了OC代码的程序员来说,swift的语法简直让人不能忍受,今天将一些常用的UI控件简单做了一下整理。

  • iOS开发- clang -rewrite-objc的使用

    clang -rewrite-objc 的作用是把oc代码转写成c/c++代码,常用它来查看OC的底层实现。 1....

  • GCD常用代码(OC)

    GCD: GCD的核心概念就是把任务添加到队列中,指定任务执行的方法.1 :任务,使用Block封装好的代码段就是...

  • iOS开发之: clang -rewrite-objc

    clang -rewrite-objc的作用是把oc代码转写成c/c++代码,我们常用它来窥探OC的一些秘密。 最...

  • iOS知识点目录

    Swift特性OC特性UI多线程、Runloop、RuntimeOC底层内存管理、数据存储性能优化设计模式IM常用...

  • Hippy的OC和vue.js交互实现调取相机相册demo

    OC调用设备功能扩展(无UI界面,UI界面纯原生的,固定不变的) 非事件型功能--当业务需要某种信息或者需要终端执...

网友评论

      本文标题:OC常用代码(非UI)

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