• ios 学习笔记 2


    1. NSUserDefaults

      个人认为ios这个方法有点类似于c#中Properties.Settings.Default,NSUserDefaults只支持: NSString, NSNumber, NSDate, NSArray, NSDictionary.

      创建一个user defaults方法有多个,最简单得快速创建方法:

        NSUserDefaults *accountDefaults = [NSUserDefaults standardUserDefaults];
      添加数据到 user defaults:
      [accountDefaults setObject:nameField.text forKey:UserDefaultNameKey];
      也可以添加基本数据类型int, float, bool等,有相应得方法
      [accountDefaults setBool:YES forKey:UserDefaultBoolKey];
      从user defaults中获取数据:
      [accountDefaults objectForKey:NCUserDefaultNameKey]
      [accountDefaults boolForKey: UserDefaultBoolKey];
         针对同一个关键字对应的对象或者数据,可以对它进行重写,重写之后关键字就对应新的对象或者数据,旧的对象或者数据会被自动清理。

    2. NSDateFormatter
      格式化日期字符串,copy一份常用参数:

    a: AM/PM (上午/下午)

    A: 0~86399999 (一天的第A微秒)

    c/cc: 1~7 (一周的第一天, 周天为1)

    ccc: Sun/Mon/Tue/Wed/Thu/Fri/Sat (星期几简写)

    cccc: Sunday/Monday/Tuesday/Wednesday/Thursday/Friday/Saturday (星期几全拼)

    d: 1~31 (月份的第几天, 带0)

    D: 1~366 (年份的第几天,带0)

    e: 1~7 (一周的第几天, 带0)

    E~EEE: Sun/Mon/Tue/Wed/Thu/Fri/Sat (星期几简写)

    EEEE: Sunday/Monday/Tuesday/Wednesday/Thursday/Friday/Saturday (星期几全拼)

    F: 1~5 (每月的第几周, 一周的第一天为周一)

    g: Julian Day Number (number of days since 4713 BC January 1) 未知

    G~GGG: BC/AD (Era Designator Abbreviated) 未知

    GGGG: Before Christ/Anno Domini 未知

    h: 1~12 (0 padded Hour (12hr)) 带0的时, 12小时制

    H: 0~23 (0 padded Hour (24hr))  带0的时, 24小时制

    k: 1~24 (0 padded Hour (24hr) 带0的时, 24小时制

    K: 0~11 (0 padded Hour (12hr)) 带0的时, 12小时制

    L/LL: 1~12 (0 padded Month)  第几月

    LLL: Jan/Feb/Mar/Apr/May/Jun/Jul/Aug/Sep/Oct/Nov/Dec 月份简写

    LLLL: January/February/March/April/May/June/July/August/September/October/November/December 月份全称

    m: 0~59 (0 padded Minute) 分钟

    M/MM: 1~12 (0 padded Month) 第几月

    MMM: Jan/Feb/Mar/Apr/May/Jun/Jul/Aug/Sep/Oct/Nov/Dec

    MMMM: January/February/March/April/May/June/July/August/September/October/November/December

    q/qq: 1~4 (0 padded Quarter) 第几季度

    qqq: Q1/Q2/Q3/Q4 季度简写

    qqqq: 1st quarter/2nd quarter/3rd quarter/4th quarter 季度全拼

    Q/QQ: 1~4 (0 padded Quarter) 同小写

    QQQ: Q1/Q2/Q3/Q4 同小写

    QQQQ: 1st quarter/2nd quarter/3rd quarter/4th quarter 同小写

    s: 0~59 (0 padded Second) 秒数

    S: (rounded Sub-Second) 未知

    u: (0 padded Year) 未知

    v~vvv: (General GMT Timezone Abbreviation) 常规GMT时区的编写

    vvvv: (General GMT Timezone Name) 常规GMT时区的名称

    w: 1~53 (0 padded Week of Year, 1st day of week = Sunday, NB: 1st week of year starts from the last Sunday of last year) 一年的第几周, 一周的开始为周日,第一周从去年的最后一个周日起算

    W: 1~5 (0 padded Week of Month, 1st day of week = Sunday) 一个月的第几周

    y/yyyy: (Full Year) 完整的年份

    yy/yyy: (2 Digits Year)  2个数字的年份

    Y/YYYY: (Full Year, starting from the Sunday of the 1st week of year) 这个年份未知干嘛用的

    YY/YYY: (2 Digits Year, starting from the Sunday of the 1st week of year) 这个年份未知干嘛用的

    z~zzz: (Specific GMT Timezone Abbreviation) 指定GMT时区的编写

    zzzz: (Specific GMT Timezone Name) Z: +0000 (RFC 822 Timezone) 指定GMT时区的名称

     

    实例:
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    [formatter setAMSymbol:@"AM"];
    [formatter setPMSymbol:@"PM"];
    [formatter setDateFormat:@"MM/dd/yyyy hh:mm:a"];
     // [NSString stringWithFormat:@"Last Updated: %@", [formatter stringFromDate:[NSDate date]]];

     

    3. backgroundView

      UIView* backgroundView= = [[TESTCellView alloc] initWithFrame:CGRectZero];

      backgroundView.opaque = YES;
          backgroundView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"list-gap.png"]];
          backgroundView = backgroundView;
          [backgroundView release];

    4. NSParameterAssert

      字面意思是带参数的断点,条件为假时执行,主要用于程序调试

      NSParameterAssert( 1== 2 );

    5. Reachability

      类似于一个网络状况的探针。

      [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(reachabilityChanged:) name: kReachabilityChangedNotification object: nil];
        
        hostReach = [[Reachability reachabilityWithHostName: @"hubj.cnblogs.com"] retain];
        [hostReach startNotifier];
        
        wifiReach=[[Reachability reachabilityForLocalWiFi]retain];
        [wifiReach startNotifier];

    - (void)reachabilityChanged: (NSNotification* )note {
        Reachability* curReach = [note object];
        NSParameterAssert([curReach isKindOfClass: [Reachability class]]);
        
        NetworkStatus netStatus = [curReach currentReachabilityStatus];
        
        switch (netStatus)
        {
            case NotReachable:
            {
                NSLog(@"Access Not Available");
                break;
            }
                
            case ReachableViaWWAN:
            {
                NSLog(@"Reachable WWAN");
                break;
            }
            case ReachableViaWiFi:
            {
                NSLog(@"Reachable WiFi");
                break;
            }
        }

    }

  • 相关阅读:
    ZIP压缩算法详细分析及解压实例解释
    nyoj 269 VF
    骨牌覆盖问题 KxM
    骨牌覆盖问题
    省赛总结...
    归并排序求逆序对
    「JLOI2014」松鼠的新家
    「JSOI2011」任务调度
    「JSOI2010」找零钱的洁癖
    「JSOI2011」棒棒糖
  • 原文地址:https://www.cnblogs.com/hubj/p/2322810.html
Copyright © 2020-2023  润新知