iOS 开发的一些小知识点

有些知识点很简单, 写下这些作为备忘,好记性不如烂笔头,持续更新中…

  • Xcode ATS(App Transport Security的简称)设置
    在plist文件中新建类型为Dictionary,key为App Transport Security Settings的键,
    在其节点下添加类型为Boolean key为 Allow Arbitrary Loads 值为YES的键值对.
    ATS

  • 设置相机中文环境(打开相机拍照默认是英文)
    项目工程-> TARGETS ->Info ->Custom iOS Target Properties,
    寻找key值为Localization native development region的一栏修改为China.
    相机中文环境

  • Xcode 模拟器中输入中文
    打开工程项目,command + shift + h : 回到home页;
    Settings->General->Language&Region->Other Languages -> Chinese, Simplified(简体中文)-> Done - > Change to Chinese, Simplified

  • 修改UISearchBar的placeholder的字体、字体颜色

     UITextField *searchField = [self.searchBar valueForKey:@"_searchField"];  
     [searchField setValue:[UIFont systemFontOfSize:14] forKeyPath:@"_placeholderLabel.font"];
     [searchField setValue:[UIColor grayColor] forKeyPath:@"_placeholderLabel.textColor"];
    
  • Xcode9新建工程运行显示不全屏解决办法
    在info.plist文件里配置key为Launch screen interface file base name
    value为LaunchImage的string。
    屏幕

  • 去掉无参block的xcode警告
    定义没有参数的block typedef void (^Block)();
    xcode会有“This block declaration not a prototype”的警告,去掉xcode警告的解决方法:
    (1).typedef void (^Block)(void);
    (2).typedef void (^Block)(id _Nullable ,...);

  • **setValue 和 setObject 的区别 **
    (1). setObject:forkey方法NSMutabledictionary特有的
    (2). setValue:forKey方法是KVC(键-值编码)的主要方法
    (3). setObject:forkey:中value不能为 nil,key可以是任何类型
    (4). setValue:forKey:中value可以是nil,当value为nil的时候,会自动调用setValue:forUndefinedKey:方法
    (5). setValue:forKey:中key的参数只能是NSString类型

  • Pods管理三方框架,去掉xcode警告
    如ReactiveObjC:在podfile文件中编辑
    pod ‘ReactiveObjC’, ‘~> 3.1.0’,:inhibit_warnings => true # RAC

  • TableView或者WebView整体上移
    self.edgesForExtendedLayout = UIRectEdgeNone;
    适用于不同系统版本代码更迭出现状况时使用。

  • Xcode10 #import 不提示头文件
    Xcode -> File -> Workspace Settings -> Build System -> Legacy Build System
    在这里插入图片描述

    在这里插入图片描述

  • cocoaPods install/update Error installing xx fatal: unable to access ‘https://github.com/xx.git/’: Failed to connect to 192.31.253.112 port 8080: Operation timed out

截图如下:
在这里插入图片描述

解决方法:
git config --global http.proxy
查询到当前设置的代理,然后取消这个设置:
git config --global --unset http.proxy
再install/update,成功了!

  • RAC观察数组元素个数变化

// 初始化
self.items =  [[NSMutableArray alloc] init];

// 添加数组元素
[[self mutableArrayValueForKey:@"items"] addObject:obj];

// 移除数组元素
[[self mutableArrayValueForKey:@"items"] removeObject:obj];

// 数据源发生变化更新UI
[[[RACObserve(self,  self.items) merge:self.items.rac_sequence.signal]  map:^id(NSArray * value) {
      return @(self.items.count > 0);
}] subscribeNext:^(NSNumber *  _Nullable x) {
      if ([x integerValue] == 1) {
          dispatch_async(dispatch_get_main_queue(), ^{
              [self.contentTableView reloadData];
          });
       }
 }];

注意:
不能用 [self.items addObject:obj];
[self.items removeObject:obj];来改变数组元素,这样监听不到数组元素的变化;


  • 用Terminal打开某个文件夹

系统偏好设置 -> 键盘 -> 快捷键 -> 服务,勾选“新建位于文件夹位置的终端窗口”

在这里插入图片描述

在 Finder 里面选中文件夹右键,菜单“服务”->新建位于文件夹位置的终端窗口"
在这里插入图片描述

第二种方式:
先打开terminal ,然后键入 cd ,把目标文件夹直接拖入终端,显示的就是目标文件夹的完整路径;

  • Auto property synthesis will not synthesize property ‘delegate’; it will be implemented by its superclass, use @dynamic to acknowledge intention
    在这里插入图片描述
    answer:
    在这里插入图片描述

  • IB 添加辅助线
    在IB模式双击选中需要添加辅助线的View, Editor-> Guides ->
    在这里插入图片描述

  • IB 删除辅助线
    找到IB所在的文件右键选择 以 source code 方式打开,搜索,然后删除此段保存重新以IB方式打开;
    在这里插入图片描述
    在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值