老谭笔记

Mountain Lion(10.8)给开发者带来了哪些更新?

1.Game Center

增加了GameKit.framework,跟iOS中的GameKit.framework是大同小异,这一点官方文档中的对比就可以看出。

2.iCloud 的增强

如果你的应用是基于NSDocument的,那么你就可以利用以下这此(可以参照OSX自带的文件编辑器):


  • 打开窗口上添加了iCloud的选项,让用户可以选择打开iCloud文件;

  • 在菜单中添加了一些与iCloud相关的菜单项

  • 打用户打开的文件在其它设备上面已经修改的文件,会弹出窗口让用户解决冲突


3.消息中心

这个也是从iOS的消息演变而来,增加了NSUserNotification和 NSUserNotificationCenter两个类,你可以配置显示给用户的通知项目(通知递交的样式,时间:deliveryDate,递交循环的通知:deliveryRepeatInterval…等等),也可以管理已经递交的通知列表(deliveredNotifications),然后可以清理等等操作。

4.分享服务

以前我们要在软件中加入分享功能,就得引入不同的分享SDK,比如facebook,twitter,以及像weibo,10.8增加了NSSharingService,可以快速的构建主流的分享服务,也可以通过NSSharingServicePicker选择用户想要的分享服务,让分享变得非常的方便。

5.Gatekeeper

在10.8中,用户可以通过开启Gatekeeper,让用户决定是否运行不同来源的应用程序,比如只允许来自于Mac App Store的应用、允许Store和被认可的开发者(默认选项)、任何来源。当用户开启Gatekeeper,并没有选择任何来源,那么未签名的软件就不被允许了。

6.Objective-C 增强


  • 默认合成了属性访问器,也就是如果想使用默认的属性访问器(@synthesize)就可以省去写了。

    对象文本为 NSArray、 NSDictionary、 NSNumber的写法:
  • NSArray Literals
    Previously:array = [NSArray arrayWithObjects:a, b, c, nil];
    Now:array = @[ a, b, c ];

  • NSDictionary Literals
    Previously:dict = [NSDictionary dictionaryWithObjects:@[o1, o2, o3]
    forKeys:@[k1, k2, k3]];
    Now:dict = @{ k1 : o1, k2 : o2, k3 : o3 };

  • NSNumber Literals
    Previously:NSNumber number;
    number = [NSNumber numberWithChar:’X’];
    number = [NSNumber numberWithInt:12345];
    number = [NSNumber numberWithUnsignedLong:12345ul];
    number = [NSNumber numberWithLongLong:12345ll];
    number = [NSNumber numberWithFloat:123.45f];
    number = [NSNumber numberWithDouble:123.45];
    number = [NSNumber numberWithBool:YES];
    Now:NSNumber
    number;
    number = @’X’;
    number = @12345;
    number = @12345ul;
    number = @12345ll;
    number = @123.45f;
    number = @123.45;
    number = @YES;



  • 仅在@implementation块里面使用的方法不再需要前向声明(其实在Xcode4.3中这样做都已经不会报警告了)

      1. 精简的对象下标:

    • arr[@1] === [arr objectAtIndex:1]

    • dict[@1] === [dict objectAtIndex:1]

    • dict[@”key”] === [dict objectForKey:@”key”]



    • 枚举类型安全

    • 10.8以后,弃用garbage collection,推荐使用ARC了


    • 7.64位兼容性

      10.8需要64位内核的MAC,不再支持32位的内核扩展(KEXTs),兼容32/64的应用程序可以运行在10.8之上。

      以上为老谭翻参考苹果官方文档:https://developer.apple.com/library/mac///releasenotes/MacOSX/WhatsNewInOSX/Articles/MacOSX10_8.html,英文翻译水平有限,多多包涵,如转载请保留链接!