标签: github-mantle

如何使用CocoaPods将GitHub的Mantle添加到Xcode

我已经使用CocoaPods将GitHub的Mantle项目添加到iOS 6项目中:

$ pod search Mantle
$ vim Podfile // here I added pod 'Mantle'
$ pod install // this installs Mantle 1.0 
Run Code Online (Sandbox Code Playgroud)

然后我自定义搜索路径之前($inherited)变量添加到Header Search Paths项目的"构建设置"部分.当导入Mantle头文件Xcode抱怨时

#import "Mantle.h" // => 'Mantle/MTLJSONAdapter.h' file not found
Run Code Online (Sandbox Code Playgroud)

我错过了一步吗?我也安装了其他吊舱(AFNetworking和SSKeychain)但只有Mantle给我提出了问题.

我还添加了SSToolkit,但是按照"入门"的说明,即不使用CocoaPods.

objective-c cocoapods github-mantle

6
推荐指数
1
解决办法
4808
查看次数

MTLModel中的MTL模型?

我有一个Web服务,它返回一个对象的JSON,并在该对象中有一个其他对象的列表.我怎样才能让Mantle为这些嵌套对象中的每一个创建一个对象,而不是为每个嵌套对象提供一个字典?

ios github-mantle

6
推荐指数
1
解决办法
2438
查看次数

用于映射核心数据的最佳库

作为开发人员,我每天都要处理数据.我需要将原始数据处理到对象(NSManagedObject)的常见问题.所以我使用AFNetworking从远程服务器获取数据,并且由于AFNetworking工作,我有一个可以由NSDictionary表示的数据.因此,需要做大量工作的主要事情是将原始数据转换为具体的数据模型.因此,互联网上有许多图书馆可以为我们做这项艰苦的工作:

MagicalRecord MagicalImport

披风

EasyMapping

因此,作为一个新的映射,我想知道哪个库最适合我的目的.也许你也可以建议另一个.

core-data ios magicalrecord github-mantle

6
推荐指数
1
解决办法
3945
查看次数

地幔:找不到协议声明,'MTLJSONSerializing'

我用coco pod安装了'Mantle'.但是当我尝试在我的模型中使用它时,它就会出现这个错误.

/Users/bgbb/Developer/experimental/MantleTest/MantleTest/TestMTL.h:11:32:找不到'MTLJSONSerializing'的协议声明

#import "MTLModel.h"

@interface TestMTL : MTLModel <MTLJSONSerializing>

@end
Run Code Online (Sandbox Code Playgroud)

这是我的podfile.

platform :ios, '7.0'

pod 'Mantle', '1.1.2'
Run Code Online (Sandbox Code Playgroud)

我不确定我错过了什么.任何线索?

iphone cocoapods github-mantle

5
推荐指数
1
解决办法
1168
查看次数

地幔自动将0和1转换为BOOL?

Mantle是否已将JSON中的int值0和1转换为objective-C BOOL值?

我有一个模特:

@interface MyModel : MTLModel

@property (nonatomic, readonly) BOOL isValid;

@end
Run Code Online (Sandbox Code Playgroud)

让我们说JSON是:

{ is_valid: 0 } OR { is_valid: 1 }
Run Code Online (Sandbox Code Playgroud)

我想知道Mantle是否会自动转换is_valid为Objective-C BOOL值,我必须明确提及以下内容:

+ (NSValueTransformer)isValidJSONTransfermer {
    return [NSValueTransformer mtl_valueMappingTransformerWithDictionary:@{@(0) : @(NO),
                                                                           @(1) : @(YES)}];
}
Run Code Online (Sandbox Code Playgroud)

objective-c ios github-mantle

5
推荐指数
1
解决办法
3304
查看次数

iOS Mantle +大衣

我正在看Overcoat图书馆,我收集的是一个扩展Mantle图书馆的图书馆.

地幔:https://github.com/Mantle/Mantle/ 大衣:https://github.com/gonzalezreal/Overcoat

Mantle和Overcoat github页面一直提到创建Mantle模型,但我想知道如何生成Mantle模型?我是否手动输入或者是否使用Xcode xcdatamodel文件以可视方式构建它,然后生成子类+之后修改该文件?

在Core Data中,使用Interface Builder在xcdatamodel文件中创建实体,然后使用Xcode的Editor> Create NSManagedObject子类.

我们是否为Mantle做同样的事情,然后从NSManagedObject更改为MTLModel?

当我们决定更新xcdatamodel文件中的Core Data实体时会发生什么?如果我们再次重新生成模型文件,我们不是必须将所有这些更改重新添加到NSManagedObject类中吗?

超级混淆了这个过程.

ios github-mantle overcoat

5
推荐指数
1
解决办法
2451
查看次数

找不到 Mantle/Mantle.h 文件。

我已经从 cocoapods 添加了 Mantle 框架 2.0 版。地幔文件被添加到我的项目中,标题搜索路径也显示了参考。但是,我反复收到此错误。我已经删除了豆荚并重新安装,但徒劳无功。

在此处输入图片说明

ios cocoapods github-mantle xcode6

5
推荐指数
1
解决办法
1962
查看次数

在块中返回非指针对象时出现问题

我正在使用Mantle来帮助我将模型对象转换为JSON.我的一个对象包含一个centroid定义如下的属性:

@property (assign) CLLocationCoordinate2D centroid;

当我处理服务器时,我收到以下格式的属性:

centroid: {
      lat: "38.416600086777166",
      lon: "-88.29868011101323"
    }
Run Code Online (Sandbox Code Playgroud)

所以我决定实现MTLJSONSerializing协议中可用的自定义JSON转换器,定义如下:

+ (NSValueTransformer*)centroidJSONTransformer {
    return [MTLValueTransformer transformerWithBlock:^CLLocationCoordinate2D(NSDictionary *dict) {
        NSNumber *latitude = dict[@"lat"];
        NSNumber *longitude = dict[@"lon"];

        return CLLocationCoordinate2DMake([latitude doubleValue], [longitude doubleValue]);
    }];
}
Run Code Online (Sandbox Code Playgroud)

我遇到的麻烦是+ (instancetype)transformerWithBlock:(MTLValueTransformerBlock)transformationBlock内部的方法MTLValueTransformer接受一个类型的块typedef id (^MTLValueTransformerBlock)(id);,它返回一个类型的值id或任何objective-c指针对象.

但是我要做的是返回CLLocationCoordinate2D类型,它是一个标量非id类型.如果没有定义我自己的客户实现transformerWithBlock:是否有一种干净的方式我可以实现这一点?

objective-c core-location objective-c-blocks nsvaluetransformer github-mantle

4
推荐指数
1
解决办法
441
查看次数

Mantle - 在 Swift 中转换嵌套模型

我在使用 Mantle 在 Swift 中反序列化和序列化嵌套模型时遇到了很多麻烦。我相信我已经正确设置了所有内容,但我什至无法克服编译错误。为了给出一些观点,我已经成功地转换了没有嵌套模型对象的类。这是我的课:

class TheClass : MTLModel, MTLJSONSerializing
{
    var person:Person?

    static func JSONKeyPathsByPropertyKey() -> [NSObject : AnyObject]!
    {
        return ["person" : "person"]
    }

    static func personJSONTransformer() -> NSValueTransformer!
    {
        return MTLValueTransformer.reversibleTransformerWithForwardBlock(
        { (person:[NSObject : AnyObject]!) -> AnyObject! in
            do
            {
                return MTLJSONAdapter.modelOfClass(Person.self, fromJSONDictionary: person)
            }
            catch
            {
                return Person()
            }
        },
        reverseBlock:
        { (person:Person) -> AnyObject! in
            return MTLJSONAdapter.JSONDictionaryFromModel(person)
        })
    }
}
Run Code Online (Sandbox Code Playgroud)

这段代码无法编译,我也无法编译。这是我收到的错误消息:

Cannot convert return expression of type 'AnyObject!' to expected return type 'Person'
Run Code Online (Sandbox Code Playgroud)

我尝试将反向块的返回类型更改为Person …

model ios nsvaluetransformer github-mantle swift

4
推荐指数
1
解决办法
2557
查看次数

如何在Swift中使用Github Mantle的MTLValueTransformer?

前言:我主要是一个obj-c && swift n00b.在过去的一年中,我通过使用RubyMotion对iOS和Cocoa框架有些熟悉.所以,如果有一些愚蠢或明显的东西我会失踪,这就是为什么......

我在新的iOS项目(使用CoreData)中使用Mantle的JSONTransformer时遇到了麻烦.我一直在尝试在Swift中实现以下[obj-c代码]:

+ (NSValueTransformer *)updatedAtJSONTransformer {
    return [MTLValueTransformer reversibleTransformerWithForwardBlock:^(NSString *str) {
        return [self.dateFormatter dateFromString:str];
    } reverseBlock:^(NSDate *date) {
        return [self.dateFormatter stringFromDate:date];
    }];
}
Run Code Online (Sandbox Code Playgroud)

我已经dateFormatter定义了以下函数:

func dateFormatter() -> NSDateFormatter {
    let _dateFormatter = NSDateFormatter()
    _dateFormatter.locale = NSLocale(localeIdentifier: "en_US_POSIX")
    _dateFormatter.dateFormat = "yyyy-MM-dd'T' HH:mm:ss'Z'"
    return _dateFormatter
}
Run Code Online (Sandbox Code Playgroud)

使用下面的实现时,我始终收到类似于以下的错误:

'AnyObject!' is not a subtype of 'NSString'

要么

Cannot convert the expression's type 'MTLValueTransformer!' to type 'NSString?'

我尝试过以下方法:

func createdAtJSONTransformer() -> NSValueTransformer {
    let _forwardBlock: (String) -> NSDate = …
Run Code Online (Sandbox Code Playgroud)

objective-c ios github-mantle swift

2
推荐指数
1
解决办法
2722
查看次数

使用Mantle库时,NSDate与NSJSONSerialization有关

我有一个问题是将核心数据管理对象序列化为JSON对象.我正在使用Mantle这样做,这是相关的NSDate.我收到了这个错误.

'Invalid type in JSON write (__NSDate)'
Run Code Online (Sandbox Code Playgroud)

这就是抛出异常的地方.它是好的,直到代码行4(NSDictionary*jDict ....)

        //NSManagedObject from Core Data
        Memo *newMemo = [self fetchMemo:memo.uuid];

        NSError *errorMantle;

        //MTLModel model
        BSMemo *memooo = [MTLManagedObjectAdapter modelOfClass:[BSMemo class] fromManagedObject:newMemo error:&errorMantle];

        NSDictionary *jDict = [MTLJSONAdapter JSONDictionaryFromModel:memooo];

        //Serialising using NSJSONSerialization
        NSData *jsonData = [NSJSONSerialization dataWithJSONObject:jDict options:NSJSONWritingPrettyPrinted error:&error];
Run Code Online (Sandbox Code Playgroud)

这是怎么了格式化NSDateMTLModel

+ (NSValueTransformer *)dateJSONTransformer {
    static dispatch_once_t onceToken;
    static NSDateFormatter *dateFormatter;

    dispatch_once(&onceToken, ^{
        dateFormatter = [[NSDateFormatter alloc] init];
        [dateFormatter setDateFormat:@"YYYY-MM-dd'T'HH:mm:ssZZZ"];

    });

    return [MTLValueTransformer transformerWithBlock:^id(NSString *string) {
        return [dateFormatter dateFromString:string];
    }]; …
Run Code Online (Sandbox Code Playgroud)

core-data nsdateformatter ios nsjsonserialization github-mantle

1
推荐指数
1
解决办法
5257
查看次数