【问题标题】:Persisting Group object not working iOS持久组对象不工作 iOS
【发布时间】:2015-05-03 20:14:42
【问题描述】:

我正在添加一个包含事件的组。一旦我坚持我的 Event 对象,它就可以毫无问题地添加它。当我坚持我的组时,对象不会过去。我认为这与我的字典或将事件添加到事件数组有关。

if (!self.event) {
    self.event = [[Event alloc] init];
}

self.event.title = @"First Event";
self.event.location = @"Dun Laoghaire Cineama";
self.event.eventdate = @"2015-04-25 02:31 PM";
self.event.title = @"Cineama";
self.event.theevent = @"Cineama";
[[AppDelegate appDelegate].events persist:self.event];

//这会起作用并创建事件。

NSMutableDictionary *groupsEventDict=[NSMutableDictionary dictionary];
NSMutableArray *eventsJSONArray=[NSMutableArray array];

[groupsEventDict setValue:self.event._id forKey:@"_id"];
[groupsEventDict setValue:@"First Event" forKey:@"title"];
[groupsEventDict setValue:@"Dun Laoghaire Cineama" forKey:@"location"];
[groupsEventDict setValue:@"2015-04-25 02:31 PM" forKey:@"eventdate"];
[groupsEventDict setValue:@"Cineama" forKey:@"theevent"];
[groupsEventDict setValue:@"2015-05-25T09:36:31.139Z" forKey:@"created_at"];
[eventsJSONArray addObject:groupsEventDict];

self.group.groupName = @"Fake Group";
self.group.how = @"School";
self.group.howLong = @"5";
[self.group.events addObject:self.event];
[self.group.dictionaryofevents setObject:eventsJSONArray forKey:@"events"];
UIImage *image2 = [UIImage imageNamed:@"group.png"];
self.group.groupimage = image2;

[[AppDelegate appDelegate].groups persist:self.group];

//这里出现错误。 A self.group 没有传递到我的 persist 方法中,因为它立即返回。

- (void) persist:(Group*)group
{
    NSLog(@"%@",group);

if (!group || group.groupName == nil || group.groupName.length == 0) {
    return;
}
if (group.groupimage != nil && group.groupimageId == nil) { 
    [self saveNewGroupImageFirst:group]; 
    return;
}
NSString* groups = [@"http://localhost:3000/" stringByAppendingPathComponent:@"groups"];
BOOL isExistingLocation = group._id != nil;

NSURL* url = isExistingLocation ? [NSURL URLWithString:[groups stringByAppendingPathComponent:group._id]] :
[NSURL URLWithString:groups];

NSMutableURLRequest* request = [NSMutableURLRequest requestWithURL:url];
request.HTTPMethod = isExistingLocation ? @"PUT" : @"POST";

NSData* data = [NSJSONSerialization dataWithJSONObject:[group toDictionary] options:0 error:NULL];
request.HTTPBody = data;

[request addValue:@"application/json" forHTTPHeaderField:@"Content-Type"];

NSURLSessionConfiguration* config = [NSURLSessionConfiguration defaultSessionConfiguration];
NSURLSession* session = [NSURLSession sessionWithConfiguration:config];

NSURLSessionDataTask* dataTask = [session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
    if (!error) {
        NSArray* responseArray = @[[NSJSONSerialization JSONObjectWithData:data options:0 error:NULL]];
        [self parseAndAddGroups:responseArray toArray:self.objects];
    }
}];
[dataTask resume];
}

【问题讨论】:

    标签: ios json nsmutablearray nsmutabledictionary restful-url


    【解决方案1】:

    你分配并初始化你的事件对象:self.event = [[Event alloc] init];

    但是您是否也对您的组对象执行此操作?我没有看到类似self.group = [[Group alloc] init];...

    【讨论】:

    • 顺便感谢一百万的帮助。
    • #define safeSet(d,k,v) if (v) d[k] = v;
    • 你愿意分享你的项目让我看看吗?
    • 是的,这将非常有帮助。我将如何转发它?再次感谢。
    • 也许你可以通过 Dropbox 分享它?
    猜你喜欢
    • 2013-12-03
    • 1970-01-01
    • 1970-01-01
    • 2017-04-03
    • 1970-01-01
    • 2014-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多