C学习Foundation构架秘技

  在做项目标时候,供给输出数据库操作的耗费时间,自个儿写了个艺术。老大看到后,诡异小编怎么不用现有的。才掌握有Stop沃特ch这些类。

  • 创设集合

Objective-C学习Foundation构架法门

轮换方法的职能一般是在原方法的根基上助长大家想要加的功用,正是改造其IMP,所以大家调用的时候依旧调用原方法,无需去修改

属性

第一章 Objective-C学习景况筹算

1.1 Objective-C基础
  一.1.壹 Objective-C的升华历程
  壹.一.二 Objective-C语言的特色
  1.一.三 技术架构
  1.二 开拓情状
  壹.二.壹 注册开采者账号
  1.二.2 下载安说大话code
  一.2.三 更新援助文书档案
  1.三 编写第三个Objective-C程序
  1.叁.一 创立项目
  一.三.二 编写程序
  一.三.三 运营程序
  壹.三.肆 使用支持
  1.4 小结

一. 在分拣中重写以前的方法(即覆盖了原方法)

在分拣中重写在此以前的点子:
People.h

@interface People : NSObject
- (void)say ;
@end

People +Swizzling.m

#import "People +Swizzling.h"

@implementation People (Swizzling)
- (void)say {
    NSLog(@"People +Swizzling.h  --- say");
}
@end

不过这么做的老毛病有贰点:
C学习Foundation构架秘技。1.在分拣中重写方法会覆盖掉原方法的魔法(即调用不了原方法),
二,如若八个分类都重写了二个方法,运转时机制不可能分明会平昔调用哪个方法;

 

    /**
     *  @param mixed $value
     *  @return \Illuminate\Support\Collection
     *  辅助函数 collect 创建 Collection 对象
     */
     Collection function collect($value = null);
     - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    /**
     *  @param mixed $value
     *  @return \Illuminate\Support\Collection
     *  采用 new 关键字创建Collection集合对象
     */
    new \Illuminate\Support\Collection($value);

第二章 数学运算(math)函数

二.一 算术运算函数
澳门葡京备用网址 ,  二.1.一 rand()函数:发生随机数
  2.壹.2 abs()函数/labs()函数:整数的相对值
  二.一.3 fabs()/fabsf()/fabsl()函数:浮点数的相对值
  2.一.肆 floor()/floorf()/floorl()函数:向下取整
  2.一.5 ceil()/ceilf()/ceill()函数:向上取整
  二.一.陆 round()/roundf()/roundl()函数:4舍伍入
  二.一.7 sqrt()/sqrtf()/sqrtl()函数:求平方根
  2.一.八 fmax()/fmaxf()/fmaxl()函数:求最大值
  2.1.9 fmin()/fminf()/fminl()函数:求最小值
  二.一.拾 hypot()/hypotf()/hypotl()函数:求直角三角形斜边的尺寸
  2.一.1一 fmod()/fmodf()/fmodl()函数:求两数整除后的余数
  二.一.1贰 modf()/modff()/modfl()函数:浮点数分解为整数和小数
  贰.一.一三 frexp()/frexpf()/frexpl()函数:浮点数分解倒数和以2为底的指数
  二.二 三角运算函数
  2.贰.1 sin()/sinf()/sinl()/函数:求正弦值
  2.二.二 sinh()/sinhf()/sinhl()函数:求双曲正弦值
  2.2.三 cos()/cosf()/cosl()函数:求余弦值
  二.贰.四 cosh()/coshf()/coshl()函数:求双曲余弦值
  2.二.伍 tan()/tanf()/tanl()函数:求正切值
  2.二.陆 tanh()/tanhf()/tanhl()函数:求双曲正切值
  二.叁 反三角运算
  贰.三.1 asin()/asinf()/asinl()函数:求反正弦值
  二.三.二 asinh()/asinhf()/asinhl()函数:求反双曲正弦值
  2.3.三 acos()/acosf()/acosl()函数:求反余弦值
  贰.3.四 acosh()/acoshf()/acoshl()函数:求反双曲余弦值
  2.叁.5 atan()/atanf()/atanl()函数:求反正切值
  二.三.6 atan贰()/atan2f()/atanl()函数:求坐标值的左右切值
  二.三.七 atanh()/atanhf()/atanhl()函数:求反双曲正切值
  2.肆 指数和对数运算
  二.四.壹 pow()/powf()/powl函数:求n的m次方的值
  二.4.二 exp()/expf()/expl()函数:求e的x次方的值
  二.4.叁 exp二()/exp二f()/exp二l()函数:2的x的次方的值
  贰.4.四 log()/logf()/logl()函数:求以e为底的对数值
  二.四.伍 log十()/log十f()/log拾l()函数:求以拾为底的对数值
  二.伍 常量函数
  2.6 小结

二. 使用运维时的调换方法(method swizzling)

写二个分化名的主意, 使用运营时将该方法与原方法交流,
(子类的章程列表并不带有父类中的方法)

  • 分2种情况:
  • 原方法为父类方法,子类未有
  • 方法和替换方法都实现于子类

Method m1 = class_getInstanceMethod(self, @selector(eat));
   Method m2 = class_getInstanceMethod(self, @selector(son_eat));

   BOOL add = class_addMethod(self, @selector(eat), method_getImplementation(m2), method_getTypeEncoding(m2));

一.第三种情状:子类没有得以达成替换方法时,必要检查测试(将原方法名SEL和替换方法的达成IMP,参与方法到本类中),
借使能投入,那时原方法的艺术达成指针指向了交替方法,
再将替换方法SEL的IMP指向原方法的IMP就达成了主意交流;

if (add) {
        class_replaceMethod(self, @selector(son_eat), method_getImplementation(m1), method_getTypeEncoding(m1));
    }

二.次之种景况:俩个章程都在子类中曾经落到实处,就直接沟通方法就能够

else {
       method_exchangeImplementations(m1, m2);

   }

- (void)eat {
    NSLog(@"%s", __FUNCTION__);
}

- (void)son_eat {

    [self son_eat];

    NSLog(@"%s", __FUNCTION__);
}

担保该代码只会调用2遍,防止频仍调用替换混乱
诚如是在+ (void)load 方法中

澳门葡京备用网址 1

艺术调换

 

  • all 方法

第2篇 Cocoa的Foundation框架篇

三.C指针

  • (方法替换的精神:将原方法的主意落成指向三个新的主意,新措施里面须要调用原方法的兑现,即新格局是私家的;)

void (*gOrigDrawRect)(id, SEL, NSRect);
+ (void)load
{
        Method origMethod = class_getInstanceMethod(self, @selector(drawRect:));
        gOrigDrawRect = (void *)method_getImplementation(origMethod);
 if(!class_addMethod(self, @selector(drawRect:), (IMP)OverrideDrawRect, method_getTypeEncoding(origMethod)))
            method_setImplementation(origMethod, (IMP)OverrideDrawRect);
}

static void OverrideDrawRect(NSView *self, SEL _cmd, NSRect r)
{
        gOrigDrawRect(self, _cmd, r);
        [[NSColor blueColor] set];
        NSRectFill(r);
}
  名称 说明
Elapsed

获取当前实例测量得出的总运行时间。

ElapsedMilliseconds

获取当前实例测量得出的总运行时间(以毫秒为单位)。

ElapsedTicks

获取当前实例测量得出的总运行时间(用计时器刻度表示)。

IsRunning

获取一个值,该值表示 Stopwatch 计时器是否正在运行。

第一章 数字对象(NSNumber)

3.1 整型对象
  3.一.一 numberWithShort:方法:成立短整型数字对象
  三.1.贰 numberWithUnsignedShort:方法:创立无符号短整型数字对象
  叁.一.三 numberWithInteger:方法:成立整型数字对象
  3.1.4 numberWithUnsignedInteger:方法:成立无符号整型数字对象
  三.一.伍 numberWithInt:方法:创制整型数字对象
  三.1.陆 numberWithUnsignedInt:方法:成立无符号整型数字对象
  三.壹.七 numberWithLong:方法:创立并开首化长整型数字对象
  3.一.捌 numberWithUnsignedLong:方法:创造并先河化无符号长整型数字对象
  叁.壹.九 numberWithLongLong:方法:创设并早先化长长整型数字对象
  3.1.十 numberWithUnsignedLongLong:方法:成立并初叶化无符号长长整型对象
  三.1.1壹 initWithShort:方法:开头化短整型数字对象
  三.一.1二 initWithUnsignedShort:方法:开头化无符号短整型数字对象
  叁.一.一三 initWithInteger:方法:早先化整型数字对象
  三.1.14 initWithUnsignedInteger:方法:早先化无符号整型数字对象
  三.一.一5 initWithInt:方法:开头化整型数字对象
  3.一.1陆 initWithUnsignedInt:方法:初阶化无符号整型数字对象
  三.一.1七 initWithLong:方法:先河化长整型数字对象
  3.壹.1八 initWithUnsignedLong:方法:开首化无符号长整型数字对象
  三.壹.1九 initWithLongLong:方法:起先化长长整型数字对象
  三.1.20 initWithUnsignedLongLong:方法:初叶化无符号长长整型数字对象
  3.一.二一 shortValue:方法:取短整型数字对象的值
  三.一.2二 unsignedShortValue:方法:取无符号短整型数字对象的值
  三.一.二三 integerValue:方法:取整型数字对象的值
  3.一.二四 unsignedIntegerValue:方法:取无符号整型数字对象的值
  叁.一.25 intValue:方法:取整型数字对象的值
  叁.一.二陆 unsignedIntValue:方法:取无符号整型数字对象的值
  三.一.贰七 longValue:方法:取长整型数字对象的值
  三.一.2八 unsignedLongValue:方法:取无符号长整型数字对象的值
  3.壹.2九 longlongValue:方法:取长长整型数字对象的值
  三.壹.30 unsignedLongLongValue:方法:取无符号长长整型数字对象的值
  叁.2 字符型对象
  三.2.一 numberWithChar:方法:创造并起始化字符型数字对象
  三.二.二 numberWithUnsignedChar:方法:创制并早先化无符号字符型数字对象
  三.二.三 initWithChar:方法:初叶化字符型对象
  三.二.肆 initWithUnsignedChar:方法:开首化无符号字符型对象
  叁.二.5 charValue:方法:取字符型数字对象的值
  三.二.六 unsignedCharValue:方法:取无符号字符型数字对象的值
  三.三 单精度型对象
  三.叁.壹 numberWithFloat:方法:创制并早先化单精度型数字对象
  三.3.2 initWithFloat:方法:伊始化单精度型数字对象
  叁.叁.三 floatValue:方法:取单精度型数字对象的值
  三.四 双精度型对象
  叁.4.1 numberWithDouble:方法:创制并开头化二个双精度型数字对象
  叁.肆.2 initWithDouble:方法:初叶化双精度型数字对象
  三.4.3 doubleValue:方法:取双精度型数字对象的值
  三.伍 布尔型对象
  三.五.壹 numberWithBool:方法:创造并开端化布尔型数字对象
  叁.伍.二 initWithBool:方法:起初化布尔类型对象
  三.5.三 boolValue:方法:取布尔型数字对象的值
  三.6 数字对象通用方法
  三.⑥.一 isEqualToNumber:方法:相比较两对象值是不是等于
  叁.六.2 compare:方法:相比值的尺寸
  3.7 小结

参考
  • Method Replacement for Fun and
    Profit

方法

    /**
     * @return array
     * 得到当前Collection的值 $this->items
     */
     public function all();

第陆章 字符串对象(NSString)

四.一 创造及开端化
  4.1.一 string:方法:创设字符串
  四.一.二 stringWithstring:方法:用字符串来创设字符串
  4.1.3 stringWithCstring:方法:创建C字符串
  四.一.4 stringWithFormat:方法:创立NSLog()格式的字符串
  4.1.伍 stringWithContentsOfFile:方法:将创制的字符串设置为钦点文件的剧情
  肆.1.陆 stringWithContentsOfU福睿斯L:方法:将创造字符串设置为url的内容
  四.一.7 stringWithUTF八String:方法:将开创的字符串转变为UTF八字符串
  四.壹.八 init:方法:初始化字符串
  四.一.九 initWithString:方法:用字符串来开始化字符串
  四.壹.十 initWithCString:方法:早先化字符串
  四.一.1壹 initWithFormat:方法:用NSLog()格式开端化字符串
  4.一.1二 initWithContentsOfFile:方法:将开首化的字符串设置为内定文件的内容
  肆.一.一三 initWithContentsOfUENVISIONL:方法:将开端化的字符串设置为url的内容
  四.一.1四 initWithUTF8String:方法:将先河化的字符串调换为UTF八字符串
  4.二 决断和相比较
  肆.二.一 isEqualTostring:方法:比较字符串是不是等于
  四.二.二 hasPrefix:方法:决断字符串是不是以某些字符伊始
  四.二.叁 hasSuffix:方法:剖断字符串是不是以有个别字符截至
  四.2.四 compare:方法:相比字符串的高低
  4.二.5 caseInsensitiveCompare:方法:不考虑大小写的可比大小
  四.三 大小写转变
  肆.三.一 uppercaseString:方法:小写字母转为大写字母
  4.三.二 lowercaseString:方法:大写字母转为小写字母
  ④.三.三 capitalizedString:方法:将种种单词的首字母大写
  4.4 截取
  四.4.一 substringToIndex:方法:从字符串的初叶一向截取到钦赐的岗位
  肆.四.二 substringFromIndex:方法:从钦赐地点上马截取字符串直到截止
  4.四.三 substringWithRange:方法:依照钦点范围重临子字符串
  4.四.四 characterAtIndex:方法:重返索引号所在字符串中的字符
  四.伍 转变类型
  4.五.壹 doubleValue:/floatValue:方法:再次回到转变为浮点类型的值
  四.5.二 intValue:方法:重临转变为整型的值
  四.伍.叁 boolValue:方法:重回调换为布尔类型的值
  四.陆 对文件的拍卖
  四.陆.1 stringByAppendingPathExtension:方法:为文件增加扩充名
  四.6.二 pathExtension:方法:获取文件扩充名
  4.陆.3 stringByDeletingPathExtension:方法:删除增加名
  4.六.四 writeToFile:方法:将字符串写入到文件
  四.陆.五 writeToU猎豹CS陆L:方法:将字符串写入到url中
  4.6.陆 stringByExpandingTildeInPath:方法:将“~”替换成系统的主目录
  四.陆.柒 stringByAbbreviatingWithTildeIn帕特h:方法:将系统主目录替换为“~”
  四.六.八 lastPathComponent:方法:获取路线中的文件名
  四.陆.9 stringByDeletingLastPathComponent:方法:获取路线中文件所在的岗位
  四.陆.10 stringByAppendingPathComponent:方法:组合地方和文书名
  四.陆.1一 isAbsolutePath:方法:判定相对路线
  4.7 其他
  四.7.一 length:方法:求字符串的尺寸
  四.7.二 stringByAppendingString:方法:字符串后边扩充一个新字符串
  4.七.叁 rangeOfString:方法:查找字符串中是或不是带有别的字符串
  4.7.四 stringByTrimmingCharactersInSet:方法:去除空格或回车
  4.捌 可变字符串 (NSMutableString)
  肆.八.壹 stringWithCapacity:方法:遵照固定长度生成空字符串
  四.8.2 initWithCapacity:方法:开始化2个定点长度的字符串
  四.8.三 appendString:方法:在字符串的结尾附加另一个字符串
  4.八.4 appendFormat:方法:附加二个格式化字符串
  四.8.伍 SetString:方法:将字符串设置为明显的内容
  四.8.陆 insertString:方法:在钦点地方插入字符串
  四.八.七 deleteCharactersInRange:方法:删除内定范围的字符串
  四.八.八 replaceCharactersInRange:方法:使用字符串代替内定范围的字符串
  肆.8.9 replaceOccurrencesOfString:方法:替换 将字符串中的有个别字全体轮换到别3个字
stringByReplacingOccurrencesOfString:方法;将字符串中的某些字全体轮换来别2个字
  4.9 小结

 

  • map 方法

第四章 数组对象(NSArray)

5.一 创制及先河化
  五.1.1 array:方法:创造数组
  伍.1.2 arrayWithArray:方法:通过3个数组成立另二个数组
  伍.一.三 arrayWithContentsOfFile:方法:创造数组将内容设置为钦定文件内容
  5.一.肆 arrayWithContentsOfULANDL:方法:创建数组将内容设置为url内定内容
  5.1.伍 arrayWithObject:方法:创制具备壹个要素的数组
  伍.一.陆 arrayWithObjects:方法:创设具备几个要素的数组
  5.一.7 init:方法:开头化数组
  5.一.八 initWithArray:方法:用数组伊始化数组
  五.一.九 initWithContentsOfFile:方法:起初化数组将内容设置为钦定文件内容
  5.一.十 initWithContentsOfU奥德赛L:方法:初步化数组将内容设置为url钦命内容
  伍.一.11 initWithObjects:方法:早先化具备多少个要素的数组
  五.贰 数组成分的操作
  伍.2.一 containsObject:方法:判别数组中是还是不是包蕴某些成分
  伍.二.2 count:方法:计算成分个数
  5.二.三 firstObjectCommonWithArray:方法:获取首成分
  伍.贰.4 lastObject:方法:获取最后八个元素
  5.二.伍 objectAtIndex:方法:获取在某些地方的数组成分
  5.二.6 objectAtIndexs:方法:获取数组成分
  伍.二.七 arrayByAddingObject:方法:在数组末尾添美金素
  5.二.8 arrayByAddingObjectsFromArray:方法:在数组的尾声增多另2个数组
  伍.二.玖 subarrayWithRange:方法:数组的一片段成立数组
  五.2.十 isEqualToArray:方法:相比数组是或不是等于
  5.二.11 indexOfObject:方法:重返成分所在的职位
  五.2.12 indexOfObjectIdenticalTo:方法:再次回到成分所在的职责
  伍.二.一三 componentsJoinedByString:方法:数组调换为字符串
  五.2.1四 componentsSeparatedByString:方法:字符串转变为数组
  五.②.壹5 sortedArrayHint:方法:数组转换为数据对象
  5.二.1陆 writeToFile:方法:将数组中的内容写入到文件
  伍.二.17 writeToUrl:方法:将数组中的内容写入到url
  五.2.18 objectEnumerator:方法:数组成分从前向后走访
  5.二.1玖 reverseObjectEnumerator:方法:数组成分从后迈入访问
  伍.2.20 pathsMatchingExtensions:方法:查看某文件夹下的东西
  伍.二.二一 sortedArrayUsingFunction:方法:落成数组元素的简单排序
  伍.三 可变数组
  5.三.1 arrayWithCapacity:方法:创造3个兼有固定长度的可变数组
  伍.三.二 initWithCapacity:方法:开始化一个具备原则性长度的可变数组
  伍.3.叁 addObject:方法:增多数组成分
  5.三.肆 addObjectsFromArray:方法:用数组创造可变数组
  伍.三.5 removeObject:方法:删除内定的要素
  伍.三.陆 removeAllObjects:方法:删除可变数组中的全体因素
  5.三.七 removeLastObject:方法:删除可变数组中的最后1个要素
  五.三.8 removeObjectAtIndex:方法:删除钦赐位置的要素
  伍.叁.玖 removeObjectsAtIndex:方法:删除可变数组中的成分
  5.三.10 removeObjectsInRange:方法:删除有些范围内的可变数组中的元素
  5.三.1一 removeObjectsInArray:方法:删除与另七个数组同样的因素
  伍.三.1二 replaceObjectAtIndex:方法:替换可变数组中某一职分的要素
  五.三.一三 replaceObjectsAtIndexes:方法:替换可变数组中的多个要素
  伍.三.1④ replaceObjectsInRange:方法:替换某一限制的数组成分
  5.三.15 insertObject:方法:在某一职位插入数组成分
  5.3.1六 insertObjects:方法:在某一任务或限制插入另壹数组成分
  5.叁.①七 exchangeObjectAtIndex:方法:交流多少个要素
  5.三.1八 setArray:方法:设置可变数组中剧情
  5.4 小结

 

第五章 字典对象(NSDictionary)

6.一 创造及开头化
  陆.1.一 dictionary:方法:创设字典
  6.1.二 dictionaryWithContentsOfFile:方法:将创设的字典内容设置为钦点文件内容
  陆.1.叁 dictionaryWithContentsOfU昂CoraL:方法:将创建的字典内容设置为钦赐url内容
  陆.1.四 dictionaryWithDictionary:方法:用字典创造字典
  陆.一.5 dictionaryWithObject:方法:创立具备二个键-值的字典
  陆.一.陆 dictionaryWithObjects:方法:创设具备八个键-值的字典
  陆.一.7 dictionaryWithObjectsAndKeys:方法:创设具备多少个键-值的字典
  陆.一.八 init:方法:开端化字典
  陆.一.九 initWithContentsOfFile:方法:将开始化的字典内容设置为钦命文件内容
  陆.一.拾 initWithContentsOfUOdysseyL:方法:将伊始化的字典内容设置为钦赐url内容
  陆.1.1一 initWithDictionary:方法:用字典先导化字典
  六.1.1二 initWithObjects:方法:伊始化具备四个键-值的字典
  6.一.13 initWithObjectsAndKeys:方法:初阶化具备四个键-值的字典
  6.2 访问键-值
  6.二.1 objectForKey:方法:重临键的值
  6.二.2 allKeys:方法:重回全数的键
  陆.二.三 allValue:方法:再次回到全数的值
  陆.二.4 allKeysForObject:方法:再次来到值所对应的键
  六.贰.五 keyEnumerator:方法:将字典中有着的键放到NSEnumerator对象中
  六.二.六 objectEnumerator:方法:将字典中兼有的值放到多个NSEnumerator对象中
  六.3 文件的拍卖
  6.叁.一 fileCreationDate:方法:文件创造日期
  六.三.2 fileModificationDate:方法:文件修改的日期
  陆.3.三 fileSize:方法:文件的大大小小
  6.三.4 fileExtensionHidden:方法:扩充名是还是不是隐伏
  陆.三.5 fileType:方法:文件的花色
  6.三.陆 fileGroupOwnerAccountID:方法:文件所属组标志
  陆.三.7 fileGroupOwnerAccountName:方法:文件所属组名
  陆.三.八 fileHFSCreatorCode:方法:文件分层系统成立者编码
  6.三.九 fileHFSTypeCode:方法:文件分层系统项目编码
  6.三.十 fileIsAppendOnly:方法:文件是或不是只读
  6.叁.1一 fileIsImmutable:方法:文件是还是不是可变
  六.三.1二 fileOwnerAccountID:方法:文件所属人标记
  6.三.1三 fileOwnerAccountName:方法:文件所属人
  6.3.14 filePosixPermissions:方法:权限
  陆.三.15 fileSystemFileNumber:方法:文件系统的文件编号
  陆.三.1陆 fileSystemNumber:方法:文件系统一编写号
  陆.3.17 writeToFile:方法:字典内容写入文件中
  陆.三.18 writeToU瑞鹰L:方法:字典内容写入url中
  6.4 其他
  6.4.1 count:方法:字典键-值个数
  陆.四.二 isEqualToDictionary:方法:判定字典是不是等于
  陆.五 可变字典
  陆.五.1 dictionaryWithCapacity:方法:创造固定长度的可变字典
  6.伍.贰 initWithCapacity:方法:发轫化固定长度的可变字典
  6.5.3 setObject:方法:设置键-值
  陆.伍.4 setDictionary:方法:用字典设置可变字典中的内容
  陆.5.5 removeAllObjects:方法:删除全体的始末
  陆.5.陆 removeObjectForKey:方法:删除键所对应的值
  六.五.7 removeObjectsForKeys:方法:删除四个键全部的值
  陆.5.八 addEntriesFromDictionary:方法:将字典中的键-值增添到可变字典中
  6.6 小结

  名称 说明
Equals(Object)

确定指定的对象是否等于当前对象。(继承自 Object。)

Finalize()

在垃圾回收将某一对象回收前允许该对象尝试释放资源并执行其他清理操作。(继承自 Object。)

GetHashCode()

作为默认哈希函数。(继承自 Object。)

GetTimestamp()

获取计时器机制中的当前刻度数。

GetType()

获取当前实例的 Type。(继承自 Object。)

MemberwiseClone()

创建当前 Object 的浅表副本。(继承自 Object。)

Reset()

停止时间间隔测量,并将运行时间重置为零。

Restart()

停止时间间隔测量,将运行时间重置为零,然后开始测量运行时间。

Start()

开始或继续测量某个时间间隔的运行时间。

StartNew()

初始化新的 Stopwatch 实例,将运行时间属性设置为零,然后开始测量运行时间。

Stop()

停止测量某个时间间隔的运行时间。

ToString()

返回表示当前对象的字符串。(继承自 Object。)

# 参看 array_map() 函数
$collection = collect(array('hello'=>"miss",'php'=>"mr",'or','golang'));
# 遍历集合数组元素(返回插入集合数值)
$coll = $collection->map(function ($value,$key){
    # $value 值 $key 键
    return "a12";
});
dump($coll); //> collect(array('hello'=>"a12",'php'=>"a12","a12","a12"))

第7章 集合(NSSet)

柒.一 成立以开端化
  7.一.一 set:方法:创制集合
  7.1.二 setWithArray:方法:用数组创设集合
  7.一.3 setWithObject:方法:创制具备一个成分的集聚
  7.壹.4 setWithObjects:方法:创立具备三个成分的集结
  七.壹.5 setWithSet:方法:集结创建集结
  柒.一.6 init:方法:初步化集结
  7.1.7 initWithArray:方法:用数组伊始化集结
  7.一.八 initWithObjects:方法:初叶化具有四个因素的集合
  七.壹.九 initWithSet:方法:集合初步化会集
  七.二 访问成分
  7.2.一 objectEnumerator:方法:将全部集结中的成分放到NSEnumerator对象中
  7.二.二 allObjects:方法:重回集合中持有的成分
  七.二.三 anyObject:方法:重回自便三个成分
  7.贰.肆 count:方法:再次回到成分个数
  七.3 推断相比较
  7.三.壹 containsObject:方法:判定集结中是或不是包括有些成分
  柒.3.二 member:方法:推断集结中是或不是包括某些成分并重返
  7.三.三 isSubsetOfSet:方法:判别3个集合是不是是贰个聚众的子集
  7.3.四 intersectsSet:方法:判外交关系破裂集
  7.3.五 isEqualToSet:方法:推断会集是还是不是等于
  七.4 可变会集
  七.四.1 setWithCapacity:方法:创立具备稳固长度的可变集结
  柒.四.二 initWithCapacity:方法:开端化具备一定长度的可变集合
  七.四.三 setSet:方法:通过集聚设置可变会集的内容
  七.肆.四 addObject:方法:添日币素
  7.4.5 addObjectsFromArray:方法:增多数组中的成分
  七.四.6 removeAllObjects:方法:删除全数因素
  柒.肆.七 removeObject:方法:删除指定的要素
  七.4.八 unionSet:方法:加多会集成分
  七.4.九 minusSet:方法:去除另两个集结中的成分
  7.4.10 intersectSet:方法:做交集
  7.5 小结

  • reject 方法

第8章 文件(NSFileManager、NSFileHandle)

八.一 defaultManger:方法:成立文件处理器
  捌.2 文件与目录的操作
  8.二.一 createFileAtPath:方法:成立文件
  8.贰.二 copyItemAtPath:方法:复制文件
  八.二.三 moveItemAtPath:方法:移动文件
  八.2.四 removeItemFileAtPath:方法:删除文件
  八.二.5 attributesOfItemAt帕特h:方法:获取文件的习性
  捌.2.陆 setAttributes:方法:改造属性
  八.二.七 currentDirectory帕特h:方法:获取当前的目录
  八.二.8 changeCurrentDirectoryPath:方法:改动目录
  8.二.玖 createDirectoryAt帕特h:方法:成立目录
  八.叁 获取文件和目录音信
  八.3.一 contentsAtPath:方法:获取文件中的信息
  8.三.二 enumeratorAtPath:方法:枚举目录
  八.三.三 contentsOfDirectoryAtPath:方法:列举目录
  捌.四 判定文件
  捌.四.一 fileExistsAt帕特h:方法:判定文件是或不是存在
  八.肆.贰 isReadableFile:方法:剖断是还是不是能拓展读取操作
  八.四.叁 isWritableFileAtPath:方法:决断是不是能张开写入操作
  八.四.四 isDeletableFileAtPath:方法:判定是不是可去除
  8.4.伍 isExecutableFileAt帕特h:方法:决断是还是不是足以实行
  8.四.陆 contentsEqualAtPath:方法:推断是不是等于
  八.5 文件读取
  捌.伍.壹 init:方法:开始化文件读写对象
  八.伍.2 fileHandleForReadingAtPath:方法:读取时展开文件
  八.5.叁 fileHandleForWritingAtPath:方法:写入时张开文件
  八.五.四 fileHandleForUpdatingAtPath:方法:更新时展开文件
  八.5.伍 writeData:方法:数据写入文件
  八.伍.6 readDataToEndOfFile:方法:读取数据
  8.5.七 readDataOfLength:方法:读取固定大小的剧情
  8.⑤.八 offsetInFile:方法:获取当前偏移量
  八.5.9 seekToFileOffset:方法:设置当前的偏移量
  八.5.10 seekToEndOfFile:方法:将偏移量定位到文件尾
  捌.伍.1一 truncateFileAtOffset:方法:设置字节
  八.五.12 availableData:方法:重返可用数据
  八.5.1三 closeFile:方法:关闭文件
  八.6 目录工具函数
  八.陆.一 NSUserName()函数:重返登入名
  8.六.2 NSFullUserName()函数:重返完整用户名
  八.六.三 NSHomeDirectory()函数:重返路线
  八.陆.四 NSHomeDirectoryForUser()函数:重临用户的主目录
  捌.陆.伍 NSTemporaryDirectory()函数:重回一时半刻文件的门径目录
  8.7 小结

第10章 时间和日历(NSDate、NSDateFormatter、NSCalendarDate、NSCalendar、NSTimeZone、NSTimer)

玖.一 时间的成立及初阶化
  玖.壹.1 date:方法:创造时间
  9.壹.二 dateWithString:方法:用字符串创建时间
  九.1.三 dateWithNaturalLanguageString:方法:用字符串成立时间
  玖.1.肆 dateWithTimeInterval:方法:用时间距离创设时间
  九.一.五 dateWithTimeIntervalSince1966:方法:用时间间隔创制时间
  玖.壹.陆 dateWithTimeIntervalSinceNow:方法:用时间距离创造时间
  玖.壹.柒 dateWithTimeIntervalSinceReferenceDate:方法:用时间间隔创立时间
  九.壹.八 init:方法:开始化时间
  9.一.九 initWithString:方法:用字符串先河化时间
  玖.1.10 initWithTimeInterval:方法:用时间间隔初步化时间
  ⑨.一.1一 initWithTimeIntervalSince1九陆七:方法:用时间距离开始化时间
  九.1.1贰 initWithTimeIntervalSinceNow:方法:用时间间隔起头化时间
  九.1.1三 initWithTimeIntervalSinceReferenceDate:方法:用时间距离开首化时间
  九.二 时间的比较
  玖.贰.一 isEqualToDate:方法:比较是还是不是等于
  玖.二.二 compare:方法:比较时间
  九.二.叁 earlierDate:方法:比较哪个时间早
  九.二.4 laterDate:方法:比较哪个时间晚
  玖.3 获取时间
  玖.3.一 dateByAddingTimeInterval:方法:获取经过岁月间隔后的日子
  9.3.二 distantPast:方法:获取过去的年华
  玖.三.三 distantFuture:方法:获取未来的岁月
  九.3.四 timeIntervalSinceDate:方法:获取两时间的差值
  九.三.5 timeIntervalSinceNow:方法:获取二日子的差值
  9.三.6 timeIntervalSince一九陆6:方法:获取两年华的差值
  玖.叁.7 timeIntervalSinceReferenceDate:方法:获取两时间的差值
  九.四 时间和字符串的并行转变
  九.四.一 init:方法:开头化用于时间转移的靶子
  九.四.二 setDateFormat:方法:设置格式
  9.四.叁 initWithDateFormat:方法:开端化用于时间更动的靶子
  ⑨.5 日历时间的创办及初阶化
  玖.五.一 calendarDate:方法:创设日历时间
  九.伍.二 dateWithYear:方法:创造日历时间并安装剧情
  玖.五.三 dateWithString:方法:创立日历时间并设置剧情及格式
  9.5.4 init:方法:初叶化日历时间
  九.5.⑤ initWithYear:方法:初阶化日历时间并设置剧情
  9.伍.陆 initWithString:方法:初阶化日历时间并安装剧情及格式
  玖.陆 获取日历时间新闻
  玖.6.1 dayOfWeek:方法:获取天数
  九.陆.二 dayOfMonth:方法:获取天数
  9.陆.叁 dayOfYear:方法:获取天数
  玖.6.四 hourOfDay:方法:获取时间
  9.陆.伍 minuteOfHour:方法:获取时间
  九.6.陆 secondOfMinute:方法:获取时间
  玖.6.7 monthOfYear:方法:获取时间
  9.6.8 yearOfCommonEra:方法:获取年
  玖.6.九 dayOfCommonEra:方法:获取天数
  玖.陆.拾 calendarFormat:方法:获取日历的格式
  九.陆.1一 timeZone:方法:获取时区
  九.六.12 dateByAddingYears:方法:获取日期时间
  九.⑦ 设置日历时间
  九.柒.一 setCalendarFormat:方法:设置日历的格式
  九.柒.贰 setTimeZone:方法:设置时区
  九.八 日历的运用
  玖.八.一 currentCalendar:方法:创造日历
  九.8.2 autoupdatingCurrentCalendar:方法:获取日历
  玖.八.三 initWithCalendarIdentifier:方法:起首化日历
  玖.八.四 local:方法:获取区域
  九.八.5 firstWeekday:方法:获取每一周的率后天
  九.八.陆 minimumDaysInFirstWeek:方法:获取天数
  九.八.7 calendarIdentifier:方法:获取日历
  玖.八.捌 setFirstWeekday:方法:设置周周的第三天
  玖.八.九 setMinimumDaysInFirstWeek:方法:设置天数
  九.九 时区的运用
  九.九.1 timeZoneWithName:方法:用已知时区创制时区
  九.玖.二 timeZoneWithAbbreviation:方法:用已知时区创立时区
  玖.九.三 timeZoneForSecondsFromGMT:方法:用偏移成立时区
  玖.玖.肆 initWithName:方法:用已知时区初始化时区
  九.玖.5 system提姆eZone:方法:获取系统的时区
  9.九.6 localTimeZone:方法:获取本地时区
  玖.玖.七 knownTimeZoneNames:方法:重回全体时区
  玖.九.八 name:方法:获取名称
  玖.9.玖 abbreviation:方法:获取缩写
  九.九.十 secondsFrom威斯他霉素T:方法:获取秒数
  玖.10 放大计时器的采用
  九.10.1 timerWithTimeInterval:方法:创立放大计时器
  九.十.2 initWithFireDate:方法:起头化电磁照拂计时器
  玖.10.3 setFireDate:方法:设置时间
  玖.十.四 fireDate:方法:再次来到时间
  九.十.伍 invalidate:方法:使电火花计时器无效
  玖.十.陆 isValid:方法:判别是或不是管用
  9.11 小结

# 过滤集合中元素参看 array_filter() 方法
$collection = collect(array('hello'=>"miss",'php'=>"mr",'or','golang'));
# 遍历集合数组元素(返回插入集合数值)
$coll = $collection->reject(function ($value,$key){
      # $value 值 $key 键
      # 返回值 bool:true 过滤该值
    if( $key === 'php' ){
        return true;
    }
    return false;
});
dump($coll); //> collect(array('hello'=>"miss,'or','golang'))

第10章 进程、线程、锁(NSProcessInfo、NSThread、NSLock)

十.① 使用进度
  十.一.一 processInfo:方法:创造进度
  十.一.2 init:方法:初阶化进程
  拾.一.三 processName:方法:获取进程的称谓
  10.一.4 environment:方法:获取变量/值
  十.一.伍 globallyUniqueString:方法:生成字符串
  十.一.陆 operatingSystem:方法:获取操作系统音讯
  10.1.七 operatingSystemName:方法:获取操作系统的称号
  十.一.八 operatingSystemVersionString:方法:获取操作系统的版本音讯
  10.一.九 processIdentifier:方法:获取进程的标识符
  十.1.十 arguments:方法:获取进度的参数
  十.一.1壹 hostName:方法:获取主机名称
  10.一.1贰 setProcessName:方法:设置进度的称呼
  10.1.13 processorCount:方法:获取CPU的数目
  10.二 线程的创设及先导化
  10.贰.1 detachNewThreadSelector:方法:创建线程
  十.二.2 init:方法:初步化线程
  10.二.叁 initWithTarget:方法:初叶化线程
  十.3 实行线程
  10.叁.1 start:方法:开启线程
  拾.三.贰 cancel:方法:撤除线程
  10.三.三 exit:方法:停止线程
  十.四 获取与安装线程
  拾.四.一 currentThread:方法:获取当前线程
  十.四.二 threadPriority:方法:获取属性值
  10.四.三 setThreadPriority:方法:设置属性值
  十.四.4 name:方法:获取名称
  10.四.伍 setName:方法:设置名称
  十.四.陆 stackSize:方法:获取旅社
  10.四.7 setStackSize:方法:设置仓库
  10.五 判定线程
  10.伍.1 isMultiThreaded:方法:决断线程是还是不是为主线程
  十.五.二 isExecuting:方法:推断线程是不是在实行
  拾.5.三 isCancelled:方法:推断线程是或不是撤废
  十.五.四 isFinished:方法:剖断线程是还是不是终止
  10.陆 使用互斥锁
  10.6.1 lock:方法:调用锁
  10.6.2 unlock:方法:关闭锁
  10.6.3 trylock:方法:锁定锁
  10.陆.四 lockBeforeDate:方法:在确定期期内获得锁
  十.柒 使用递归锁
  10.7.1 lock:方法:调用锁
  10.7.2 unlock:方法:关闭锁
  10.7.3 tryLock:方法:获取锁
  10.7.四 lockBeforeDate:方法:在自然时间内获得锁
  10.八 使用条件锁
  拾.八.1 initWithCondition:方法:早先化条件锁
  10.八.2 condition:方法:获取条件
  10.八.三 lockWhenCondition:方法:在尺度允许下调用锁
  10.八.4 unlockWithCondition:方法:在规则允许下关闭锁
  10.8.伍 tryLockWhenCondition:方法:在原则允许下得到锁
  10.八.6 lockWhenCondition:方法:在尺度和岁月允许下得到锁
  10.8.7 tryLock:方法:获取锁
  十.8.八 lockBeforeDate:方法:在必然时间下获得锁
  10.8.9 lock:方法:调用锁
  10.8.10 unlock:方法:关闭锁
  10.9 小结

  • avg 方法

第3壹章 数据对象及归档(NSData、NSKeyedArchiver)

11.一 数据对象的创造及开始化
  11.1.一 data:方法:创设数量对象
  1一.1.2 dataWithBytes:方法:用已有数量创建数量对象
  1一.1.三 dataWithContentsOfFile:方法:将数据对象内容设置为钦命文件内容
  1一.一.四 dataWithContentsOfU奥迪Q3L:方法:将创造对象的剧情设置为url钦命的始末
  1壹.一.伍 dataWithData:方法:用已有数据对象成立新的数量对象
  11.1.陆 init:方法:先河化数据对象
  1壹.一.七 initWithBytes:方法:用已有多少伊始化数据对象
  1一.1.八 initWithContentsOfFile:方法:对数码对象伊始化并将其安装为钦命文件内容
  1一.1.九 initWithContentsOfULANDL:方法:对数码对象初阶化并将其安装为钦点url内容
  1一.一.10 initWithData:方法:用已有多少对象开首化新的数额对象
  1壹.2 数据对象的利用
  1一.二.1 bytes:方法:将数据对象转换为字符
  1一.2.二 dataUsingEncoding:方法:将字符串转变为数量对象
  11.贰.3 length:方法:计算数据对象的长度
  1一.二.四 isEqualToData:方法:判定三个数据对象是还是不是等于
  1一.二.五 subdataWithRange:方法:截取数据对象
  1一.二.陆 writeToFile:方法:写入文件
  11.2.7 writeToURL:方法:写入url
  1一.叁 可变多少对象
  1一.叁.1 dataWithCapacity:方法:创制八个独具一定空间大小的可变数据对象
  1一.三.二 dataWithLength:方法:成立具有固定长度的可变数据对象
  1一.三.三 initWithCapacity:方法:起初化具有原则性空间尺寸的可变数据对象
  1壹.三.四 initWithLength:方法:初步化具备稳固长度的可变数据对象
  1一.三.伍 setData:方法:设置剧情
  1一.3.六 setLength:方法:设置长度
  11.叁.七 appendBytes:方法:增添多少
  11.三.八 appendData:方法:增多数码对象
  1一.三.玖 mutableBytes:方法:可变多少对象转化为字符
  11.3.10 replaceBytesInRange:方法:替换
  11.3.11 resetBytesInRange:方法:删除
  11.4 归档
  1一.4.一 archiveRootObject:方法:数据归档
  11.四.二 unarchiveObjectWithFile:方法:撤消归档
  11.四.三 encodeBool:方法:对布尔类型的数据编码
  11.四.四 decodeBoolForKey:方法:对布尔类型数据解码
  1一.肆.5 encodeInt:方法:对整型数据编码
  1一.四.陆 decodeIntForKey:方法:对整型数据解码
  1一.四.7 encodeFloat:/encodeDouble:方法:对浮点型数据编码
  1一.4.⑧ decodeFloatForKey:/decodeDoubleForKey:方法:对浮点型数据解码
  1一.肆.玖 encodeObject:方法:对目的实行编码
  11.四.十 decodeObjectForKey:方法:对目的开始展览解码
  11.四.11 archivedDataWithRootObject:方法:将此外品类的数码进行转移
  11.4.12 initForWritingWithMutableData:方法:初始化
  11.4.13 initForReadingWithData:方法:初始化
  11.5 小结

第3篇 Cocoa的Application框架篇

$collection = collect(array('hello'=>"miss",'php'=>2,'or',3))->avg(); //> 不推荐
dump($collection); //> 1.25 = (2+3)/4
$collection = collect(array(1,3,5,7,9))->avg();
dump($collection); //> 5 = (1+3+5+7+9)/5
$collection = collect(array(array('php'=>12,13,43),array('es'=>12,13,'php'=>32)))->avg('php');
dump($collection); //> 22 = (12+32)/2

第三2章 窗口和颜色(NSWindow、NSColor)

1二.一 获取窗口消息
  12.一.一 aspectRatio:方法:获取窗口的纵横比
  1贰.壹.二 orderedIndex:方法:获取索引
  12.壹.叁 title:方法:获取窗口的题目
  1二.一.四 miniwindowTitle:方法:获取窗口最小化后的标题
  1二.一.伍 frame:方法:获取窗口的岗位和大小
  1二.一.陆 minSize:方法:获取窗口的相当的小尺寸
  1二.一.7 maxSize:方法:获取窗口的最大尺寸
  1二.一.八 miniwindowImage:方法:获取窗口最小化后的图纸
  1二.一.玖 backgroundColor:方法:获取窗口的背景颜色
  1贰.壹.10 childWindows:方法:获取子窗口
  12.一.11 阿尔法Value:方法:获取窗口的发光度值
  1二.贰 设置窗口
  1二.二.一 setAspectRatio:方法:设置窗口的纵横比
  12.二.2 setIsVisible:方法:设置窗口是或不是可见
  1贰.二.3 setTitle:方法:设置窗口标题
  1二.二.4 setMiniwindowTitle:方法:设置窗口最小化后的标题
  1二.二.5 setIsMiniaturized:方法:设置窗口是或不是最小化
  12.贰.6 setIsZoomed:方法:设置窗口是或不是最大化
  1贰.2.七 setFrame:方法:设置窗口的职位和尺寸
  1二.贰.八 setFrameOrigin:方法:设置窗口的任务
  1二.二.玖 setFrameTopLeftPoint:方法:设置窗口的岗位
  1二.二.十 setMinSize:方法:设置窗口的细微尺寸
  1二.二.11 set马克斯Size:方法:设置窗口的最大尺寸
  1二.二.12 setMiniwindowImage:方法:设置窗口最小化后的图片
  1二.二.壹三 setBackgroundColor:方法:设置窗口的背景颜色
  1二.二.14 setCanHide:方法:设置窗口是不是能够隐藏
  1二.二.一五 setAlphaValue:方法:设置窗口的晶莹度值
  1二.二.1陆 disableFlushWindow:方法:将窗口设置为禁止使用的
  1二.二.一七 setHasShadow:方法:设置窗口的黑影
  1二.3 判别窗口
  1二.叁.一 isVisible:方法:判别窗口是或不是可知
  12.3.二 isMiniaturized:方法:判别窗口是不是最小化
  1二.三.三 isZoomed:方法:决断窗口是还是不是最大化
  1二.三.肆 canHide:方法:判别窗口是不是足以隐蔽
  1二.三.5 hasShadow:方法:判别窗口是不是有影子
  1二.三.陆 isMiniaturizable:方法:判定窗口是还是不是有最小化按键
  1二.3.柒 hasTitleBar:方法:剖断窗口是不是有工具栏
  1二.四 创立自定义颜色对象
  1②.4.一 colorWithCalibratedRed:方法:用标准LX570GB分量成立颜色对象
  1二.四.2 colorWithCalibrated惠特e:方法:用专门的工作灰度分量成立颜色对象
  1二.四.3 colorWithCalibratedHue:方法:用专门的学问HSB分量创立颜色对象
  1二.四.四 colorWithDeviceCyan:方法:用设备CMYB分量创制颜色对象
  1二.四.5 colorWithDeviceRed:方法:用设施汉兰达GB分量创立颜色对象
  1贰.四.陆 colorWithDevice惠特e:方法:用器材灰度分量创设颜色对象
  12.4.柒 colorWithDeviceHue:方法:用配备HSB分量创造颜色对象
  12.肆.八 colorWithPatternImage:方法:用图像创制颜色对象
  1二.五 创立颜色对象
  1二.五.一 redColor:方法:用栗褐成立颜色对象
  1二.5.2 greenColor:方法:用绿蓝创设颜色对象
  1二.伍.三 blueColor:方法:用墨伟青创造颜色对象
  12.五.4 cyanColor:方法:用孔雀蓝创设颜色对象
  1贰.5.伍 magentaColor:方法:用血红棕创建颜色对象
  1二.伍.6 yellowColor:方法:用土黑创制颜色对象
  12.伍.7 blackColor:方法:用深茶褐创制颜色对象
  1贰.五.八 brownColor:方法:用豆沙色创造颜色对象
  1二.5.玖 dark格雷Color:方法:用深漆黑创建颜色对象
  12.5.⑩ grayColor:方法:用镉黄成立颜色对象
  1二.5.1一 light格雷Color:方法:用浅土黑创造颜色对象
  1二.5.12 orangeColor:方法:用土灰成立颜色对象
  12.五.13 purpleColor:方法:用桔黄创设颜色对象
  12.伍.1四 whiteColor:方法:用品蓝创设颜色对象
  1二.陆 获取颜色分量
  1二.陆.一 redComponent:方法:获取土色的分量
  1二.陆.2 greenComponent:方法:获取肉桂色的份额
  12.六.三 blueComponent:方法:获取浅湖蓝的分量
  1二.6.肆 cyanComponent:方法:获取墨绛红的份量
  12.6.5 magentaComponent:方法:获取紫樱桃红分量
  1二.陆.陆 yellowComponent:方法:获取金色分量
  1二.6.7 blackComponent:方法:获取樱草黄的分量
  1②.六.8 whiteComponent:方法:获取海蓝的份量
  1二.6.九 阿尔法Component:方法:获取反射率分量
  1二.陆.十 hueComponent:方法:获取色调的份量
  1贰.6.11 saturationComponent:方法:获取饱和度的轻重
  1二.陆.12 brightnessComponent:方法:获取亮度分量
  12.6.一三 patternImage:方法:获取图像新闻
  12.7 小结

  • max 方法

第3三章 自定义视图(NSView)

一三.1 initWithFrame:方法:起先化自定义视图
  一3.2 获取与安装自定义视图消息
  一叁.二.壹 frame:方法:获取自定义视图的框架
  一叁.二.2 setFrame:方法:设置自定义视图框架
  壹3.2.三 frameRotation:方法:获取自定义视图的团团转度数
  1三.二.4 setFrameRotation:方法:设置自定义视图旋转度数
  壹三.2.5 setFrameOrigin:方法:设置自定义视图的职分
  一3.2.陆 setFrameSize:方法:设置自定义视图的轻重缓急
  一3.二.7 bounds:方法:获取自定义视图框架
  1三.二.捌 setBounds:方法:设置自定义视图框架
  一3.2.玖 boundsRotation:方法:获取自定义视图的转动度数
  1三.2.10 setBoundsRotation:方法:设置自定义视图旋转的度数
  壹叁.二.1一 setBoundsOrigin:方法:设置视图的职位
  一三.二.1二 setBoundsSize:方法:设置视图的轻重缓急
  一3.二.壹三 subviews:方法:获取子视图
  1三.贰.1肆 setPostsFrameChangedNotifications:方法:设置是不是收到视图的扭转
  一三.二.壹五 setPostsBoundsChangedNotifications:方法:设置是不是接受视图的变型
  一三.二.1陆 printJobTitle:方法:获取输出标题
  13.3 drawRect:方法:绘图
  1三.4 判别自定义视图
  ①叁.四.一 postsFrameChangedNotifications:方法:判别是不是接收看电视机图调换的新闻
  一3.四.二 postsBoundsChangedNotifications:方法:判定是不是收到视图转换的新闻
  一叁.四.三 isFlipped:方法:剖断视图是不是翻转
  一三.肆.四 isRotatedFromBase:方法:决断视图是或不是旋转
  一3.4.伍 isRotatedOrScaledFromBase:方法:判断视图是或不是旋转或缩放
  壹3.四.陆 canDraw:方法:判别视图是或不是绘制
  一三.四.柒 isOpaque:方法:判别视图是还是不是不透明
  一三.5 操作自定义视图
  13.5.1 addSubview:方法:增添视图
  壹叁.5.贰 removeFromSuperview:方法:删除视图
  一三.5.三 replaceSubview:方法:替换视图
  13.6 小结

第3四章 文本框和文件视图(NSText菲尔德、NSTextView)

14.一 获取与安装文本框新闻
  1肆.一.一 stringValue:方法:获取文本框的字符串
  14.一.二 setStringValue:方法:设置文本框中的字符串
  1四.一.三 backgroundColor:方法:获取文本框的背景颜色
  1肆.一.四 setBackgroundColor:方法:设置文本框的背景颜色
  1四.一.5 textColor:方法:获取字符串的水彩
  1四.一.六 setTextColor:方法:设置字符串的水彩
  1四.壹.7 setImportsGraphics:方法:设置是不是能够将图像拖到文本框
  1四.一.8 set艾德itable:方法:设置文本框是或不是足以编写翻译
  1四.壹.九 bezelStyle:方法:获取文本框边框的品格
  1肆.一.10 setBezelStyle:方法:设置文本框边框的风骨
  14.1.1壹 setBezeled:方法:设置文本框是还是不是接受bezeled边框
  1四.一.1二 setBordered:方法:设置文本框是不是接受黑边框
  14.二 判定文本框音信
  14.贰.壹 importsGraphics:方法:判别是还是不是足以将图像拖到文本框
  1四.二.2 is艾德itable:方法:剖断文本框是还是不是能够编写
  14.贰.叁 isBezeled:方法:剖断文本框是还是不是接受了bezeled边框
  14.二.四 isBordered:方法:判断文本框是还是不是接受了黑边框
  1四.2.伍 acceptsFirstResponder:方法:判别文本框是不是足以编写制定
  1四.叁 initWithFrame:方法:成立并起始化文本视图
  14.四 获取与安装文本视图音信
  1四.肆.1 backgroundColor:方法:获取文本视图的颜料
  14.肆.二 setBackgroundColor:方法:设置文本视图的背景颜色
  1四.四.3 setImportsGraphics:方法:设置文件是或不是足以导入到文本视图
  1四.4.四 setAcceptsGlyphInfo:方法:设置文本视图是或不是接受字形音信
  1四.四.伍 setAlignment:方法:设置文本视图内容的对齐方式
  1四.4.陆 insertionPointColor:方法:获取插入点的水彩
  1四.④.柒 setInsertionPointColor:方法:设置插入点的水彩
  1肆.四.八 setAllowsUndo:方法:设置文本视图是或不是能够收回
  1四.四.9 selectedTextAttributes:方法:获取用于提示接纳的性质
  1肆.4.10 setSelectedTextAttributes:方法:设置文本视图用于提示选取的属性
  14.四.1一 textContainer:方法:获取文本框的文书容器
  1四.4.1贰 acceptableDragTypes:方法:获取文本视图的数据类型
  1四.4.一三 markedTextAttributes:方法:获取绘制标志的文本属性
  14.四.1肆 set马克edTextAttributes:方法:设置绘制标志的文本属性
  1四.四.1伍 set斯马特InsertDeleteEnabled:方法:设置选拔字符串左近的长空
  1四.4.16 markedRange:方法:获取被标记文本的界定
  1四.4.壹7 selectedRange:方法:获取选中文本的限定
  1四.四.1八 setSelectedRange:方法:设置文本的当选范围
  14.肆.1九 typingAttributes:方法:获取新文本的属性
  14.肆.20 setTypingAttributes:方法:设置新文本的性质
  1肆.伍 推断文本视图的音讯
  1四.5.1 importsGraphics:方法:剖断文件是或不是足以导入到文本视图
  1肆.伍.二 acceptsGlyphInfo:方法:判定文本视图是或不是接受字形音信
  14.5.3 allowsUndo:方法:判别文本视图是还是不是启用撤废
  1四.五.四 smartInsertDeleteEnabled:方法:判别采取字符串附近的空中
  14.6 小结

# max 推荐纯数值集合
$collection = collect(array('hello'=>"miss",'php'=>2,'or',3))->max();  //> 不推荐
dump($collection); //> 3
$collection = collect(array(1,3,5,7,9))->max();
dump($collection); //> 9
$collection = collect(array(array('php'=>12,13,43),array('es'=>12,13,'php'=>32)))->max('php');
dump($collection); //> 32

第35章 图像、图像视图(NSImage、NSImageView)

15.一 加载图像
  15.1.1 imageNamed:方法:加载Supporting Files文件夹中的图片
  15.一.2 initWithContentsOfUOdysseyL:方法:加载UCRUISERL中的图像
  一5.壹.叁 initWithContentsOfFile:方法:加载文件中的图片
  1五.一.4 initWithSize:方法:加载图像的尺寸
  一5.二 获取与安装图像消息
  一伍.2.一 size:方法:获取图像的大小
  一五.二.二 setSize:方法:设置图像的分寸
  一5.2.三 setFlipped:方法:设置图像是不是倒立
  一五.二.四 cacheMode:方法:获取图像的缓存情势
  一伍.二.五 setCacheMode:方法:设置图像的缓存方式
  一5.二.陆 backgroundColor:方法:获取图像的背景象
  一伍.2.柒 setBackgroundColor:方法:设置图像的背景象
  一5.2.8 name:方法:获取图像的称呼
  一5.贰.九 setName:方法:设置图像的名称
  一伍.二.十 setTemplate:方法:设置图像是或不是意味1个模板图像
  一5.二.11 imageTypes:方法:获取图像类型
  一伍.2.1二 imageUnfilteredTypes:方法:获取图像类型
  一伍.2.一三 imageFileTypes:方法:获取文件类型
  一5.二.1四 imageUnfilteredFileTypes:方法:获取文件类型
  1五.二.一5 imagePasteboardTypes:方法:获取粘贴板类型
  壹五.二.16 imageUnfilteredPasteboardTypes:方法:获取粘贴板类型
  15.2.一7 representations:方法:获取图像表示
  一5.三 判定图像音讯
  一伍.三.一 isFlipped:方法:决断图像是不是倒立
  一五.三.二 prefersColorMatch:方法:推断图像颜色相称
  壹五.三.三 isTemplate:方法:决断图像是或不是为模板图像
  一伍.肆 获取与安装图像视图
  15.4.一 image:方法:获取显示图像的信息
  一五.4.2 setImage:方法:设置彰显的图像
  1五.4.三 imageAlignment:方法:获取图像的对齐方式
  一5.肆.肆 setImageAlignment:方法:设置图像的对齐形式
  一5.4.五 imageFrameStyle:方法:获取框架的作风
  一五.肆.6 setImageFrameStyle:方法:设置框架的风骨
  15.4.柒 imageScaling:方法:获取图像缩放的法子
  壹5.四.捌 setImageScaling:方法:设置图像缩放情势
  1伍.四.玖 is艾德itable:方法:判定图像视图是或不是可以编写制定
  15.四.10 set艾德itable:方法:设置图像视图是还是不是编辑
  1伍.4.1壹 allowsCutCopyPaste:方法:判别图像是不是可复制、粘贴等操作
  一伍.肆.1贰 setAllowsCutCopyPaste:方法:设置图像是或不是可复制、粘贴等操作
  壹五.四.一3 animates:方法:剖断图像视图是还是不是播放动画
  一5.肆.14 setAnimates:方法:设置图像视图是还是不是播放动画
  15.5 小结

  • min 方法

第16章 表视图(NSTableView)

1陆.一 获取表视图音信
  1陆.1.一 rowHeight:方法:获取表视图的行高
  16.1.2 headerView:方法:获取NSTableHeaderView对象
  1陆.1.三 intercellSpacing:方法:获取表单元之间的间隔
  1陆.一.四 numberOfColumns:方法:获取表视图中的列数
  1陆.一.5 numberOfRows:方法:获取表视图的行数
  1陆.1.陆 numberOfSelectedColumns:方法:获取选中的列数
  16.一.7 numberOfSelectedRows:方法:获取选择的行数
  1陆.一.8 rowSizeStyle:方法:获取行业作风格
  1陆.二 设置表视图的音讯
  1陆.②.1 setRowHeight:方法:设置表视图的行高
  1六.二.二 setIntercellSpacing:方法:设置表单元之间的间距
  1陆.二.3 setRowSizeStyle:方法:设置行业作风格
  1六.2.四 setAllowsColumnReordering:方法:设置用户是还是不是可以重新排列列标题
  1陆.贰.5 setAllowsColumnResizing:方法:设置是不是足以调节列标题
  1六.二.6 setAllowsColumnSelection:方法:设置是不是能够选用壹整列
  1陆.二.七 setAllowsTypeSelect:方法:设置是还是不是足以经过按钮字符实行抉择
  16.二.八 setAllowsMultipleSelection:方法:设置是还是不是同意选拔多行或多列
  1陆.三 剖断表视图消息
  1陆.三.一 allowsColumnReordering:方法:判别用户是还是不是能够重新排列列标题
  1陆.三.2 allowsColumnResizing:方法:剖断是不是足以调解列标题
  1陆.三.叁 allowsColumnSelection:方法:判定是或不是能够选用1整列
  16.3.四 allowsEmptySelection:方法:判定是不是同意有0个行或列被入选
  16.3.5 allowsTypeSelect:方法:剖断是不是能够由此开关字符进行分选
  1陆.三.陆 allowsMultipleSelection:方法:决断是或不是允许选用多行或多列
  16.4 小结

第27章 常见控件(NSButton、NSDatePicker、NSProgressIndicator、NSComboBox)

一7.一 开关控件(NSButton)
  一七.一.一 title:方法:获取开关的标题
  1七.1.二 setTitle:方法:设置开关的题目
  一七.壹.叁 image:方法:获取开关的图像
  17.一.四 setImage:方法:设置按键的图像
  17.一.五 isTransparent:方法:判别按键是不是透明
  一七.一.陆 setTransparent:方法:设置按键是还是不是透明
  一柒.一.柒 showsBorderOnlyWhileMouseInside:方法:判别边框的来得
  17.1.8 setSh”[1]

# min 推荐纯数值集合
$collection = collect(array('hello'=>"miss",'php'=>2,'or',3))->min(); //> 不推荐
dump($collection); //> miss
$collection = collect(array(1,3,5,7,9))->min();
dump($collection); //> 1
$collection = collect(array(array('php'=>12,13,43),array('es'=>12,13,'php'=>32)))->min('php');
dump($collection); //> 12
  • sum 方法

$collection = collect(array('hello'=>"miss",'php'=>2,'or',3))->sum();
dump($collection); //> 5
$collection = collect(array(1,3,5,7,9))->sum();
dump($collection); //> 25
$collection = collect(array(array('php'=>12,13,43),array('es'=>12,13,'php'=>32)))->sum('php');
dump($collection); //> 44
  • tap 方法

    /**
     * Pass the collection to the given callback and then return it.
     *
     * @param  callable  $callback
     * @return $this
     */
    public function tap(callable $callback)
    {
        $callback(new static($this->items));

        return $this;
    }
    $collection = collect(array('hello'=>"miss",'php'=>2,'or',3));
    $collection->tap(function($coll){
        dump($coll); //> collect(array('hello'=>"miss",'php'=>2,'or',3))
    });
  • toArray 方法

    /**
     * Get the collection of items as a plain array.
     *
     * @return array
     */
    public function toArray()
    {
        return array_map(function ($value) {
            return $value instanceof Arrayable ? $value->toArray() : $value;
        }, $this->items);
    }
  • toJson 方法

    /**
     * Get the collection of items as JSON.
     *
     * @param  int  $options
     * @return string
     */
    public function toJson($options = 0)
    {
        return json_encode($this->jsonSerialize(), $options);
    }
    /**
     * Convert the object into something JSON serializable.
     *
     * @return array
     */
    public function jsonSerialize()
    {
        return array_map(function ($value) {
            if ($value instanceof JsonSerializable) {
                return $value->jsonSerialize();
            } elseif ($value instanceof Jsonable) {
                return json_decode($value->toJson(), true);
            } elseif ($value instanceof Arrayable) {
                return $value->toArray();
            } else {
                return $value;
            }
        }, $this->items);
    }
  • zip 方法

    /**
     * Zip the collection together with one or more arrays.
     *
     * e.g. new Collection([1, 2, 3])->zip([4, 5, 6]);
     *      => [[1, 4], [2, 5], [3, 6]]
     *
     * @param  mixed ...$items
     * @return static
     */
    public function zip($items)
    {
        $arrayableItems = array_map(function ($items) {
            return $this->getArrayableItems($items);
        }, func_get_args());

        $params = array_merge([function () {
            return new static(func_get_args());
        }, $this->items], $arrayableItems);

        return new static(call_user_func_array('array_map', $params));
    }
  • median 方法

# 获取给定集合的中间值(排序后的中间值)
# 集合是奇数 获取中间数值
# 集合是偶数 获取中间两个数的平均值
$collection = collect(array('hello'=>34,'php'=>2,'we'=>32,'ed'=>54,'wd'=>3,43));
dump($collection->median());  //> 33 = (34+32)/2
$collection = collect(array('hello'=>34,'php'=>2,'we'=>32,'ed'=>54,'wd'=>3));
dump($collection->median()); //> 32
$collection = collect(array(array(12,11,'php'=>43),array(12,1,'php'=>23),array('php'=>12,3)));
dump($collection->median('php')); //> 23
  • mode 方法

# 返回出现次数最多的数
$collection = collect(array(array(12,11,'php'=>13),array(12,1,'php'=>13),array('php'=>12,3)));
dump($collection->mode('php')); //> [13]
$collection = collect(array('hello'=>34,'php'=>2,'we'=>34,'ed'=>34,'wd'=>3,2,2));
dump($collection->mode());  //> [34,2]
$collection = collect(array(12,3,234,21,32,123,1,1,2,2));
dump($collection->mode());  //> [1,2]
  • each 方法

    /**
     * Execute a callback over each item.
     *
     * @param  callable  $callback
     * @return $this
     */
    public function each(callable $callback)
    {
        foreach ($this->items as $key => $item) {
            if ($callback($item, $key) === false) {
                break;
            }
        }

        return $this;
    }
$collection = collect(array(array(12,11,'php'=>13),array(12,1,'php'=>13),array('php'=>12,3)));
$collection->each(function ($value,$key){
    # $value 值 $key 键
    dump($value);
    dump($key);
});
  • every 方法

# 检查集合中每一个元素是否符合条件
# 源码参考
    /**
     * Determine if all items in the collection pass the given test.
     *
     * @param  string|callable  $key
     * @param  mixed  $operator
     * @param  mixed  $value
     * @return bool
     */
    public function every($key, $operator = null, $value = null)
    {
        if (func_num_args() == 1) {
            $callback = $this->valueRetriever($key);

            foreach ($this->items as $k => $v) {
                if (! $callback($v, $k)) {
                    return false;
                }
            }

            return true;
        }

        if (func_num_args() == 2) {
            $value = $operator;

            $operator = '=';
        }

        return $this->every($this->operatorForWhere($key, $operator, $value));
    }
# 使用示例
$collection = collect(array(array(12,11,'php'=>13),array(12,1,'php'=>13),array('php'=>12,3)));
$result = $collection->every(function($v,$k){
    # $v 值 $k 键
    # 条件判断 
    # return false; 比较失败终止比较返回false
    # return true; 本次比较通过,进行下次比较
    return true;
});
dump($result);    //> true
dump($collection->every('php','>',12)); //> false
# php键 是否存在集合里(集合里的每一个数组中)
dump($collection->every('php')); //> true 
dump(collect(array(array(12,11,'php'=>13),array(12,1,'php'=>13),array(3)))->every('php')); //> false
# 支持比较符 null(=) = == != <> > < >= <= === !==
# 更多用法 - 参看源码
  • when 方法

# 源码 - when 方法使用很简单这里不详细举例了
    /**
     * Apply the callback if the value is truthy.
     *
     * @param  bool  $value            # 判断条件
     * @param  callable  $callback
     * @param  callable  $default
     * @return mixed
     */
    public function when($value, callable $callback, callable $default = null)
    {
        if ($value) {
            return $callback($this);
        } elseif ($default) {
            return $default($this);
        }

        return $this;
    }
  • unless 方法

# 源码 - 参考when方法
    /**
     * Apply the callback if the value is falsy.
     *
     * @param  bool  $value            # 判断条件
     * @param  callable  $callback
     * @param  callable  $default
     * @return mixed
     */
    public function unless($value, callable $callback, callable $default = null)
    {
        return $this->when(! $value, $callback, $default);
    }
  • where 方法

# 过滤掉其他数据 刷选
    /**
     * Filter items by the given key value pair.
     *
     * @param  string  $key
     * @param  mixed  $operator
     * @param  mixed  $value
     * @return static
     */
    public function where($key, $operator, $value = null)
    {
        if (func_num_args() == 2) {
            $value = $operator;

            $operator = '=';
        }

        return $this->filter($this->operatorForWhere($key, $operator, $value));
    }
# 使用示例
$collection = collect(array(array(12,11,'php'=>13),array(12,1,'php'=>13),array(3)));
dump($collection->where('php','=',13)); //> collect(array(array(12,11,'php'=>13),array(12,1,'php'=>13)))
# 支持比较符 null(=) = == != <> > < >= <= === !==
  • whereStrict 方法

# 参考where方法 严格等于 筛选
    /**
     * Filter items by the given key value pair using strict comparison.
     *
     * @param  string  $key
     * @param  mixed  $value
     * @return static
     */
    public function whereStrict($key, $value)
    {
        return $this->where($key, '===', $value);
    }
  • whereIn 方法

# 源码 - 给定集合键(过滤集合)是否在另一个数组或集合里存在
    /**
     * Filter items by the given key value pair.
     *
     * @param  string  $key       # 给定集合里的键
     * @param  mixed  $values # 另一个集合或数组
     * @param  bool  $strict       # 是否开启严格比较
     * @return static
     */
    public function whereIn($key, $values, $strict = false)
    {
        $values = $this->getArrayableItems($values);

        return $this->filter(function ($item) use ($key, $values, $strict) {
            return in_array(data_get($item, $key), $values, $strict);
        });
    }
  • whereInStrict 方法

# 严格过滤 - 参看whereIn方法
    /**
     * Filter items by the given key value pair using strict comparison.
     *
     * @param  string  $key
     * @param  mixed  $values
     * @return static
     */
    public function whereInStrict($key, $values)
    {
        return $this->whereIn($key, $values, true);
    }
  • whereNotIn 方法

# 该方法正好和whereIn用法相反
    /**
     * Filter items by the given key value pair.
     *
     * @param  string  $key
     * @param  mixed  $values
     * @param  bool  $strict
     * @return static
     */
    public function whereNotIn($key, $values, $strict = false)
    {
        $values = $this->getArrayableItems($values);

        return $this->reject(function ($item) use ($key, $values, $strict) {
            return in_array(data_get($item, $key), $values, $strict);
        });
    }
  • whereNotInStrict 方法

# 该方法和whereInStrict用法相反
    /**
     * Filter items by the given key value pair using strict comparison.
     *
     * @param  string  $key
     * @param  mixed  $values
     * @return static
     */
    public function whereNotInStrict($key, $values)
    {
        return $this->whereNotIn($key, $values, true);
    }

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*
*
Website