一个普普通通 iOS 码农的多少个小品种有关知识点统计

题记:在开发的行程上,有的人走的很深很远,而对于停留在初级阶段的自己的话,还要学的、经历的还有很多…

list

  • sqlite 数据库中,当把表里的数据都清空时,下次安顿的数量的 id
    主键不会从 0 开头。有限支撑起见 下次从数据库获取数据时先获取首个的 id
    主键,不知底还有没有任何简易的法子
  • 假设设置了 tableView 的上方距再拔取MJRefresh时,刷新控件会错位,可选用忽略
    tableView等的内边距方法,该办法在类:MJRefreshHeader 里,方法名
    ignoredScrollViewContentInsetTop
  • 填写表单型的 tableView,用到了 text菲尔德 要留意需求显示的是
    text菲尔德(Field).text 照旧 text菲尔德.placeholder,注意 cell 循环引用。
    需求写多种像样的表格时,UI 界面就一套,用当地分裂的 plist
    数据去控制表格,给多少很多性质来区分:扩大正则判断数值,增添样式…
  • kvc
    修改已有类的私家属性是足以的,使用苹果未爆出的类的私房属性和方法是不允许的
  • 一个页面数十次异步请求数据(使用
    AFN),但需求在最后一遍呼吁数据的时候才刷新 UI

    • 异步请求嵌套,在两回异步请求成功或失利的回调里开展下四次呼吁,适合于五回呼吁有强烈的次序关系时
    • 用一个变量做标记,在每四次呼吁成功的回调里
      须要写以下八个地方的代码:①将变量加个1,②假如变量等于请求的个数就实施请求完结、刷新UI的方法
      ,当然请求失利也亟需这么处理
    • 其他方法...?
  • 谓词 NSPredicate 的使用

    • NSArray *tmpArray = [self.zhiBiaoArray filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:[NSString stringWithFormat:@”month == ‘%@'”, month]]];

    • NSString regex = @”^[0-9]$”;

      NSPredicate *predicate = [NSPredicate predicateWithFormat:@"self matches %@",regex];
      return [predicate evaluateWithObject:text];
      
  • 据悉数据中的对象的特性排序

    tmpArray = [tmpArray sortedArrayUsingComparator:^NSComparisonResult(SuiFangItem *obj1, SuiFangItem *obj2) {
    return [obj1.SUBDATE compare:obj2.SUBDATE] == NSOrderedAscending;}];
    
  • 经文代码,标签 for 循环排序设置标签的 xy

     for (NSInteger i = 0; i < tagBtnArray.count; i ++) {
       UIButton *tagBtn = tagBtnArray[i];
       if (i == 0) {
         tagBtn.fd_x = 0;
         tagBtn.fd_y = 0;
         } else {
           UIButton *previousBtn = tagBtnArray[i -1];
           tagBtn.fd_x = CGRectGetMaxX(previousBtn.frame) + 10;
           tagBtn.fd_y = previousBtn.fd_y;
           if ((tagViewW - tagBtn.fd_x) < tagBtn.fd_width) {tagBtn.fd_x = 0;
    tagBtn.fd_y = CGRectGetMaxY(previousBtn.frame) + 10;
           }
      }
     }
    
  • 解析 xml 值格式 的多少,xml 属性格式 的可利用系统的

    • 使用 XMLDictionary 将 xml 转成字典,再分析
  • 服务器重回一堆带有月份的数码,服务器并未做按月分组,本地已毕按月分组

    // 获得数据中存在的月份,共有哪几个月份
    NSMutableArray *monthArray = [NSMutableArray array];
    ZhiBiaoItem *firstItem = self.zhiBiaoArray[0];
    [monthArray addObject:firstItem.month];
    
    for (NSInteger i = 1; i < self.zhiBiaoArray.count; i ++) {
        ZhiBiaoItem *item = self.zhiBiaoArray[i];
        if (![item.month isEqualToString:firstItem.month]) {
            if ([monthArray containsObject:item.month]) {
                continue;
            }
            [monthArray addObject:item.month];
        }
    }
    
    self.monthArray = monthArray;
    
    // 根据月份进行分组
    NSMutableDictionary *resultDict = [NSMutableDictionary dictionary];
    for (NSString *month in monthArray) {
        NSArray *tmpArray = [self.zhiBiaoArray filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:[NSString stringWithFormat:@"month == '%@'", month]]];
        [resultDict setObject:tmpArray forKey:month];
    }
    
    self.resultDict = resultDict;
    
  • 应用 AFN 配置服务器自己创办的 https 证书的 https

    • 运用 AFN 忽略所有 https 证书、不检测域名的策略

      AFSecurityPolicy *secPolicy        = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeNone];
      secPolicy.allowInvalidCertificates = YES;
      secPolicy.validatesDomainName      = NO;
      _mgr.securityPolicy                = secPolicy;
      
    • 配置 AFN 本地 https证书? 不清楚如何配置

  • PNChart 修改 节点label 的大大小小,在源码中修改

- (CATextLayer *)createPointLabelFor:(CGFloat)grade pointCenter:(CGPoint)pointCenter width:(CGFloat)width withChartData:(PNLineChartData *)chartData {
    CATextLayer *textLayer = [[CATextLayer alloc] init];
    [textLayer setAlignmentMode:kCAAlignmentCenter];
    [textLayer setForegroundColor:[chartData.pointLabelColor CGColor]];
    [textLayer setBackgroundColor:[[[UIColor whiteColor] colorWithAlphaComponent:0.8] CGColor]];
    [textLayer setCornerRadius:textLayer.fontSize / 8.0];

    if (chartData.pointLabelFont != nil) {
        [textLayer setFont:(__bridge CFTypeRef) (chartData.pointLabelFont)];
        textLayer.fontSize = [chartData.pointLabelFont pointSize];
    }

    CGFloat textHeight = textLayer.fontSize * 1.1;
    CGFloat textWidth = width * 7;
    CGFloat textStartPosY;

}
  • PNChart 修改 x 轴 label 的岗位,源码方法

- (void)setXLabels:(NSArray *)xLabels withWidth:(CGFloat)width  {
}
  • PNChart 修改 y 轴,源码方法

- (void)setYLabels {
PNChartLabel *minLabel = [[PNChartLabel alloc] initWithFrame:CGRectMake(0.0, (NSInteger) _chartCavanHeight - 10, (NSInteger) _chartMarginBottom, (NSInteger) _yLabelHeight)];

CGRect labelFrame = CGRectMake(0.0,
                    (NSInteger) (_chartCavanHeight + _chartMarginTop - index * yStepHeight) -10,

}
  • PNChart 修改曲线 水平方向未来完全便移一点相距,源码方法

- (void)calculateChartPath:(NSMutableArray *)chartPath andPointsPath:(NSMutableArray *)pointsPath andPathKeyPoints:(NSMutableArray *)pathPoints andPathStartEndPoints:(NSMutableArray *)pointsOfPath {


int x = i * _xLabelWidth + _chartMarginLeft + _xLabelWidth / 2.0 + 6;


}
网站地图xml地图