CoreLib 1.4.1

CoreLib 1.4.1

测试已测试
Lang语言 Obj-CObjective C
许可证 MIT
发布上次发布2014年12月

CoreCode维护。



CoreLib 1.4.1

  • 作者:
  • CoreCode

CoreLib是一组可重用的Objective-C源代码,用于让开发Mac和iOS应用程序的各个方面更加容易、快速和安全。

CoreLib设计得让你可以只使用你想要的/需要的部分,而不必强制使用全部功能。

只需在您的.pch文件中包含CoreLib.h,并包含执行你感兴趣的任务的文件。

CoreLib具有以下组件

  • 基于Cocoa的基础类(如NSArray、NSData、NSObject、NSString等)的扩展分类,以提供新的功能或语法糖(AppKit+CoreCode、Foundation+CoreCode)

  • (iOS)针对UIActionSheet、UIAlertView等类的子类,以提供更方便的基于块的接口或新的视图控制器(iOS/JM*)

  • (Mac)用于发送电子邮件、获取主机信息、管理登录项、显示样式字体列表等的便利类(Mac/JM*)

  • 所有Foundation和AppKit类的分类,以提供属性而不是GETTER/SETTER,这在10.10 SDK中也有提供,但我们在Xcode 6之前的版本中也提供了(AppKit+Properties、Foundation+Properties)

  • 对老SDK中的对象索引的支持,其中苹果不支持(Foundation+Indexing)

  • 对在部署目标上不可用的方法和类调用生成警告的支持(CoreLib_Availability)

  • 对集合类中的伪静态类型的支持(在集合中直接调用对象属性而不需要转型)以及更多便利的功能(CoreLib)

初始化

在您的PCH文件中

#import "CoreLib_Availability.h" // optional, for warnings on calls to unavailable methods
#import <Cocoa/Cocoa.h> // you had that before
#import "CoreLib.h"

在applicationDidFinishLaunching:方法中

cc = [CoreLib new]; // dont forget this

使用方法

一些示例说明如何利用CoreLib使开发应用程序更加有趣。

而不是

[[NSUserDefaults standardUserDefaults] objectForKey:@"MyPref"]

编写

@"MyPref".defaultObj

而不是

[[NSUserDefaults standardUserDefaults] setInteger:1 forKey:@"MyPref"];

编写

@"MyPref".defaultInt = 1;

而不是

[@"abc\ndef\nbla" componentsSeparatedByCharactersInSet:[NSCharacterSet newlineCharacterSet]]

编写

@"abc\ndef\nbla".lines

而不是

NSURL *url = [NSURL URLWithString:@"http://myhost/myfile"];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
NSData *file = [NSURLConnection sendSynchronousRequest:request returningResponse:NULL error:NULL];

编写

NSData *file = @"http://myhost/myfile".download;

还有许多其他便利方法,包括对NSArray的一些功能扩展。

定义

CoreLib的一些功能需要链接额外的框架,因此只有在包含这些框架并设置某些预处理值时才可用:#define USE_SECURITY 1 // 如果链接Security框架 #define USE_SYSTEMCONFIGURATION 1 // 如果链接SystemConfiguration框架 #define USE_IOKIT 1 // 如果链接IOKit框架 #define USE_DISKARBITRATION 1 // 如果链接DiskArbitration框架 #define USE_SNAPPY 1 // 如果链接Snappy框架 #define USE_MAILCORE 1 // 如果链接MailCore框架 #define USE_APPLEMAIL 1 // 如果有Mail.app的ScriptingDefinition

此外,CoreLib的一些部分需要设置SANDBOX预处理定义来指示您的应用程序是否为沙盒。