Исправлено: вызывали urllib.parse.urlencode
для преобразования dict в строку, а затем явно устанавливали тип содержимого:
postparam = urllib.parse.urlencode({"ID": theId}).encode('utf-8')
req = Request(url, method='POST', data=postparam)
req.add_header("content-type", "application/x-www-form-urlencoded")
r = urlopen(req)
Отношения «один к одному» моделируются как объектные ссылки с помощью Core Data. Таким образом, однозначное отношение от сущности Bar
к сущности Baz
(при условии, что Baz
реализовано классом Baz
) будет
@interface Bar : NSManagedObject {
}
@property (readwrite,nonatomic) Baz * toBaz;
@end
] Отношения ко многим моделируются как свойство изменяемого набора (хотя не как NSMutableSet
). Предполагая отношение ко многим от Bar
до Baz
, вызывается manyBazz
:
@interface Bar : NSManagedObject {
}
@property (retain) NSSet* manyBazz;
@end
// coalesce these into one @interface AnalysisRecord (CoreDataGeneratedAccessors) section
@interface Bar (CoreDataGeneratedAccessors)
- (void)addManyBazzObject:(Baz *)value;
- (void)removeManyBazzObject:(Baz *)value;
- (void)addManyBazz:(NSSet *)value;
- (void)removeManyBazz:(NSSet *)value;
@end
Если вы хотите использовать интерфейс NSMutableSet для управления manyBazz
, вы должны вызвать -mutableSetValueForKey: @ "manyBazz"
, чтобы получить KVO-совместимый прокси для отношения manyBazz
.
В Leopard (OS X 10.5) и более поздних версиях , все соответствующие методы автоматически генерируются во время выполнения платформой Core Data, даже если вы явно не объявляете или не реализуете их (вы, конечно, получите предупреждение компилятора, если попытаетесь использовать их, не объявляя их в файле заголовка ). Таким образом, вам не требуется для подкласса
. Самый простой способ получить правильное объявление и реализацию - выбрать атрибуты в средстве моделирования данных и выбрать «Копировать объявления метода Objective-C 2.0 в буфер обмена» из Меню «Дизайн-> Модель данных» вставьте в файл .h ваших классов реализации. Конечно, вы должны поддерживать синхронизацию вашего .h и модели ... отсюда сердечная рекомендация по поводу потрясающего MO Generator от rentzsch, инструмента, который автоматически генерирует (и повторно генерирует) подклассы NSManagedObject из ваших данных. модель.
Самый простой способ создать файлы .h и .m для ваших сущностей CoreData:
Это создаст следующие заголовочные и исходные файлы:
Entity.h:
#import <CoreData/CoreData.h>
@interface Entity : NSManagedObject
{
}
@property (retain) NSNumber * uniqueID;
@property (retain) NSString * name;
@property (retain) Entity * parent;
@property (retain) NSSet* children;
@end
@interface Entity (CoreDataGeneratedAccessors)
- (void)addChildrenObject:(Entity *)value;
- (void)removeChildrenObject:(Entity *)value;
- (void)addChildren:(NSSet *)value;
- (void)removeChildren:(NSSet *)value;
@end
Entity.m:
#import "Entity.h"
@implementation Entity
@dynamic uniqueID;
@dynamic name;
@dynamic parent;
@dynamic children;
@end
Обратите внимание, что реализация не