测试已测试 | ✗ |
语言语言 | Obj-CObjective C |
许可证 | MIT |
发布上次发布 | 2014年12月 |
依赖关系 | |
CouchCocoa | ~> 1.0 |
TouchDB | = 1.0 |
Mantle | ~> 1.0 |
Kiwi | ~> 2.0.6 |
ActiveTouch是使用TouchDB-iOS(适用于iOS的CouchDB实现)实现的ActiveRecord。
由 Lucas Medeiros 开发
安装Cocoapods需要Ruby。
gem install cocoapods
有关Cocoapods的更多信息
在您的Podfile
中添加依赖项
platform :ios
...
pod 'ActiveTouch'
...
运行pod install
以安装依赖项。
#import "ATDatabaseContainer.h"
@implementation ATAppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[[ATDatabaseContainer sharedInstance] openDatabaseWithName:@"your_database_name"];
return YES;
}
#import <Foundation/Foundation.h>
#import "ATModel.h"
@interface Car : ATModel
@property (nonatomic, copy) NSString *model;
@property (nonatomic, copy) NSString *year;
@end
[Car allWithSuccessBlock:^(NSArray *collection) {
self.cars = [NSMutableArray arrayWithArray:collection];
[self.tableView reloadData];
} withErrorBlock:^(NSError *error) {
NSLog(@"Error: %@", error);
}];
[Car allWithLimit:10 skipping:5 withSuccessBlock:^(NSArray *collection) {
} withErrorBlock:^(NSError *error) {
}];
Car *car = [Car findById:@"12312-ASADSD"];
验证模型
ATModel有一个名为isValid的方法,它返回一个BOOL,默认返回YES。如果您想进行某种验证,您可以覆盖它并按您希望的验证模型。
创建一辆车
Car *car = [[Car alloc] init];
car.model = @"aModel";
car.year = @"aYear";
[car createWithSuccessBlock:^{
} withErrorBlock:^(NSError *error) {
}];
[car updateWithSuccessBlock:^{
} withErrorBlock:^(NSError *error) {
}];
[car destroyWithSuccessBlock:^{
} withErrorBlock:^(NSError *error) {
}];
如果您想添加另一个couchdb视图,您可以像这样覆盖ATModel
的+(void)registerViews方法
+ (void)registerViews
{
[super registerViews];
//Add another view here
}
当您调用all方法时,它将按照_id对您的文档进行排序,如果您想改变排序顺序,可以这样操作
+ (NSArray *)sortOrder
{
return @[ @"name", @"age" ];
}
#import "ATDatabaseTestRunner.h"
#import "ATDatabaseContainer.h"
#import "Kiwi.h"
SPEC_BEGIN(ATModelIntegrationSpec)
beforeAll(^{
[ATDatabaseTestRunner openTestDatabaseNamed:@"your_test_database"];
});
beforeEach(^{
[ATDatabaseContainer stub:@selector(sharedInstance) andReturn:[ATDatabaseTestRunner databaseContainer]];
[ATDatabaseTestRunner cleanDatabase];
});
afterAll(^{
[ATDatabaseTestRunner removeDatabase];
});
SPEC_END
specify(^{
[[model should] beValid];
});
ATModel
类继承自Git的Mantle中的MTLModel
类,该类可以用来解析来自web服务调用返回的JSON,这使得与网络框架(如AFNetworking)的集成变得更容易。
ActiveTouch
需要 iOS 5.x 或更高版本。
Eduardo Gurgel 提供了这个项目名称。
使用受MIT 许可协议规定,详情见 LICENSE 文件。