working so far
This commit is contained in:
@@ -12,12 +12,12 @@
|
|||||||
544FBD4721064B2F008A260C /* getFeed.py in Resources */ = {isa = PBXBuildFile; fileRef = 544FBD4621064B2F008A260C /* getFeed.py */; };
|
544FBD4721064B2F008A260C /* getFeed.py in Resources */ = {isa = PBXBuildFile; fileRef = 544FBD4621064B2F008A260C /* getFeed.py */; };
|
||||||
544FBD4921064DF0008A260C /* feedparser521.py in Resources */ = {isa = PBXBuildFile; fileRef = 544FBD4821064DF0008A260C /* feedparser521.py */; };
|
544FBD4921064DF0008A260C /* feedparser521.py in Resources */ = {isa = PBXBuildFile; fileRef = 544FBD4821064DF0008A260C /* feedparser521.py */; };
|
||||||
54ACC28121061B3B0020715F /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 54ACC28021061B3B0020715F /* AppDelegate.m */; };
|
54ACC28121061B3B0020715F /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 54ACC28021061B3B0020715F /* AppDelegate.m */; };
|
||||||
54ACC28421061B3B0020715F /* baRSS.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = 54ACC28221061B3B0020715F /* baRSS.xcdatamodeld */; };
|
|
||||||
54ACC28621061B3C0020715F /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 54ACC28521061B3C0020715F /* Assets.xcassets */; };
|
54ACC28621061B3C0020715F /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 54ACC28521061B3C0020715F /* Assets.xcassets */; };
|
||||||
54ACC28921061B3C0020715F /* Main.xib in Resources */ = {isa = PBXBuildFile; fileRef = 54ACC28721061B3C0020715F /* Main.xib */; };
|
54ACC28921061B3C0020715F /* Main.xib in Resources */ = {isa = PBXBuildFile; fileRef = 54ACC28721061B3C0020715F /* Main.xib */; };
|
||||||
54ACC28C21061B3C0020715F /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 54ACC28B21061B3C0020715F /* main.m */; };
|
54ACC28C21061B3C0020715F /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 54ACC28B21061B3C0020715F /* main.m */; };
|
||||||
54ACC29521061E270020715F /* NewsController.m in Sources */ = {isa = PBXBuildFile; fileRef = 54ACC29421061E270020715F /* NewsController.m */; };
|
54ACC29521061E270020715F /* NewsController.m in Sources */ = {isa = PBXBuildFile; fileRef = 54ACC29421061E270020715F /* NewsController.m */; };
|
||||||
54ACC29821061FBA0020715F /* Preferences.m in Sources */ = {isa = PBXBuildFile; fileRef = 54ACC29721061FBA0020715F /* Preferences.m */; };
|
54ACC29821061FBA0020715F /* Preferences.m in Sources */ = {isa = PBXBuildFile; fileRef = 54ACC29721061FBA0020715F /* Preferences.m */; };
|
||||||
|
54F39C2E210BE1F700AEE730 /* DBv1.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = 54ACC28221061B3B0020715F /* DBv1.xcdatamodeld */; };
|
||||||
/* End PBXBuildFile section */
|
/* End PBXBuildFile section */
|
||||||
|
|
||||||
/* Begin PBXFileReference section */
|
/* Begin PBXFileReference section */
|
||||||
@@ -29,7 +29,7 @@
|
|||||||
54ACC27C21061B3B0020715F /* baRSS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = baRSS.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
54ACC27C21061B3B0020715F /* baRSS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = baRSS.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
54ACC27F21061B3B0020715F /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
|
54ACC27F21061B3B0020715F /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
|
||||||
54ACC28021061B3B0020715F /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
|
54ACC28021061B3B0020715F /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
|
||||||
54ACC28321061B3B0020715F /* baRRS.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = baRRS.xcdatamodel; sourceTree = "<group>"; };
|
54ACC28321061B3B0020715F /* DBv1.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = DBv1.xcdatamodel; sourceTree = "<group>"; };
|
||||||
54ACC28521061B3C0020715F /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
|
54ACC28521061B3C0020715F /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
|
||||||
54ACC28821061B3C0020715F /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/Main.xib; sourceTree = "<group>"; };
|
54ACC28821061B3C0020715F /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/Main.xib; sourceTree = "<group>"; };
|
||||||
54ACC28A21061B3C0020715F /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
54ACC28A21061B3C0020715F /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||||
@@ -104,7 +104,7 @@
|
|||||||
54ACC28A21061B3C0020715F /* Info.plist */,
|
54ACC28A21061B3C0020715F /* Info.plist */,
|
||||||
54ACC28B21061B3C0020715F /* main.m */,
|
54ACC28B21061B3C0020715F /* main.m */,
|
||||||
54ACC28D21061B3C0020715F /* baRSS.entitlements */,
|
54ACC28D21061B3C0020715F /* baRSS.entitlements */,
|
||||||
54ACC28221061B3B0020715F /* baRSS.xcdatamodeld */,
|
54ACC28221061B3B0020715F /* DBv1.xcdatamodeld */,
|
||||||
);
|
);
|
||||||
path = baRSS;
|
path = baRSS;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -142,6 +142,9 @@
|
|||||||
CreatedOnToolsVersion = 9.4.1;
|
CreatedOnToolsVersion = 9.4.1;
|
||||||
LastSwiftMigration = 0940;
|
LastSwiftMigration = 0940;
|
||||||
SystemCapabilities = {
|
SystemCapabilities = {
|
||||||
|
com.apple.ApplicationGroups.Mac = {
|
||||||
|
enabled = 0;
|
||||||
|
};
|
||||||
com.apple.Sandbox = {
|
com.apple.Sandbox = {
|
||||||
enabled = 1;
|
enabled = 1;
|
||||||
};
|
};
|
||||||
@@ -186,8 +189,8 @@
|
|||||||
isa = PBXSourcesBuildPhase;
|
isa = PBXSourcesBuildPhase;
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
files = (
|
files = (
|
||||||
|
54F39C2E210BE1F700AEE730 /* DBv1.xcdatamodeld in Sources */,
|
||||||
54ACC29521061E270020715F /* NewsController.m in Sources */,
|
54ACC29521061E270020715F /* NewsController.m in Sources */,
|
||||||
54ACC28421061B3B0020715F /* baRSS.xcdatamodeld in Sources */,
|
|
||||||
54ACC28C21061B3C0020715F /* main.m in Sources */,
|
54ACC28C21061B3C0020715F /* main.m in Sources */,
|
||||||
54ACC28121061B3B0020715F /* AppDelegate.m in Sources */,
|
54ACC28121061B3B0020715F /* AppDelegate.m in Sources */,
|
||||||
54ACC29821061FBA0020715F /* Preferences.m in Sources */,
|
54ACC29821061FBA0020715F /* Preferences.m in Sources */,
|
||||||
@@ -413,13 +416,13 @@
|
|||||||
/* End XCConfigurationList section */
|
/* End XCConfigurationList section */
|
||||||
|
|
||||||
/* Begin XCVersionGroup section */
|
/* Begin XCVersionGroup section */
|
||||||
54ACC28221061B3B0020715F /* baRSS.xcdatamodeld */ = {
|
54ACC28221061B3B0020715F /* DBv1.xcdatamodeld */ = {
|
||||||
isa = XCVersionGroup;
|
isa = XCVersionGroup;
|
||||||
children = (
|
children = (
|
||||||
54ACC28321061B3B0020715F /* baRRS.xcdatamodel */,
|
54ACC28321061B3B0020715F /* DBv1.xcdatamodel */,
|
||||||
);
|
);
|
||||||
currentVersion = 54ACC28321061B3B0020715F /* baRRS.xcdatamodel */;
|
currentVersion = 54ACC28321061B3B0020715F /* DBv1.xcdatamodel */;
|
||||||
path = baRSS.xcdatamodeld;
|
path = DBv1.xcdatamodeld;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
versionGroupType = wrapper.xcdatamodel;
|
versionGroupType = wrapper.xcdatamodel;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -41,9 +41,6 @@
|
|||||||
printf("will init\n");
|
printf("will init\n");
|
||||||
[PyHandler prepare];
|
[PyHandler prepare];
|
||||||
printf("done\n");
|
printf("done\n");
|
||||||
NSDictionary * obj = [PyHandler getFeed:@"https://feeds.feedburner.com/simpledesktops" withEtag:nil andModified:nil];
|
|
||||||
NSLog(@"obj = %@", obj);
|
|
||||||
[self quitClicked:nil];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -60,7 +57,7 @@
|
|||||||
// The persistent container for the application. This implementation creates and returns a container, having loaded the store for the application to it.
|
// The persistent container for the application. This implementation creates and returns a container, having loaded the store for the application to it.
|
||||||
@synchronized (self) {
|
@synchronized (self) {
|
||||||
if (_persistentContainer == nil) {
|
if (_persistentContainer == nil) {
|
||||||
_persistentContainer = [[NSPersistentContainer alloc] initWithName:@"baRSS"];
|
_persistentContainer = [[NSPersistentContainer alloc] initWithName:@"DBv1"];
|
||||||
[_persistentContainer loadPersistentStoresWithCompletionHandler:^(NSPersistentStoreDescription *storeDescription, NSError *error) {
|
[_persistentContainer loadPersistentStoresWithCompletionHandler:^(NSPersistentStoreDescription *storeDescription, NSError *error) {
|
||||||
if (error != nil) {
|
if (error != nil) {
|
||||||
// Replace this implementation with code to handle the error appropriately.
|
// Replace this implementation with code to handle the error appropriately.
|
||||||
|
|||||||
@@ -21,7 +21,6 @@
|
|||||||
<customObject id="YLy-65-1bz" customClass="NSFontManager"/>
|
<customObject id="YLy-65-1bz" customClass="NSFontManager"/>
|
||||||
<customObject id="he0-Eb-PDA" customClass="NewsController">
|
<customObject id="he0-Eb-PDA" customClass="NewsController">
|
||||||
<connections>
|
<connections>
|
||||||
<outlet property="managedObjectContext" destination="ESi-qE-Dj9" id="Nnv-1A-WLk"/>
|
|
||||||
<outlet property="openUnreadItem" destination="Qqw-Xj-oA5" id="8df-is-Qop"/>
|
<outlet property="openUnreadItem" destination="Qqw-Xj-oA5" id="8df-is-Qop"/>
|
||||||
<outlet property="pauseItem" destination="D7r-Vb-9eO" id="o7e-jD-3Yj"/>
|
<outlet property="pauseItem" destination="D7r-Vb-9eO" id="o7e-jD-3Yj"/>
|
||||||
<outlet property="updateAllItem" destination="wgp-fa-8Wj" id="edP-bQ-bIM"/>
|
<outlet property="updateAllItem" destination="wgp-fa-8Wj" id="edP-bQ-bIM"/>
|
||||||
@@ -447,7 +446,6 @@
|
|||||||
</subviews>
|
</subviews>
|
||||||
<point key="canvasLocation" x="350" y="903.5"/>
|
<point key="canvasLocation" x="350" y="903.5"/>
|
||||||
</customView>
|
</customView>
|
||||||
<managedObjectContext id="ESi-qE-Dj9"/>
|
|
||||||
<userDefaultsController representsSharedInstance="YES" id="K8S-BW-Na6"/>
|
<userDefaultsController representsSharedInstance="YES" id="K8S-BW-Na6"/>
|
||||||
</objects>
|
</objects>
|
||||||
<resources>
|
<resources>
|
||||||
|
|||||||
@@ -3,6 +3,6 @@
|
|||||||
<plist version="1.0">
|
<plist version="1.0">
|
||||||
<dict>
|
<dict>
|
||||||
<key>_XCCurrentVersionName</key>
|
<key>_XCCurrentVersionName</key>
|
||||||
<string>baRRS.xcdatamodel</string>
|
<string>DBv1.xcdatamodel</string>
|
||||||
</dict>
|
</dict>
|
||||||
</plist>
|
</plist>
|
||||||
34
baRSS/DBv1.xcdatamodeld/DBv1.xcdatamodel/contents
Normal file
34
baRSS/DBv1.xcdatamodeld/DBv1.xcdatamodel/contents
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||||
|
<model type="com.apple.IDECoreDataModeler.DataModel" documentVersion="1.0" lastSavedToolsVersion="14135" systemVersion="17G65" minimumToolsVersion="Automatic" sourceLanguage="Objective-C" userDefinedModelVersionIdentifier="v1">
|
||||||
|
<entity name="Feed" representedClassName="Feed" syncable="YES" codeGenerationType="class">
|
||||||
|
<attribute name="author" optional="YES" attributeType="String" syncable="YES"/>
|
||||||
|
<attribute name="date" optional="YES" attributeType="String" syncable="YES"/>
|
||||||
|
<attribute name="etag" optional="YES" attributeType="String" syncable="YES"/>
|
||||||
|
<attribute name="icon" optional="YES" attributeType="Binary" customClassName="NSImage" syncable="YES"/>
|
||||||
|
<attribute name="link" optional="YES" attributeType="String" syncable="YES"/>
|
||||||
|
<attribute name="modified" optional="YES" attributeType="String" syncable="YES"/>
|
||||||
|
<attribute name="published" optional="YES" attributeType="Transformable" customClassName="NSArray" syncable="YES"/>
|
||||||
|
<attribute name="subtitle" optional="YES" attributeType="String" syncable="YES"/>
|
||||||
|
<attribute name="title" optional="YES" attributeType="String" syncable="YES"/>
|
||||||
|
<relationship name="items" optional="YES" toMany="YES" deletionRule="Cascade" ordered="YES" destinationEntity="FeedItem" inverseName="feed" inverseEntity="FeedItem" syncable="YES"/>
|
||||||
|
</entity>
|
||||||
|
<entity name="FeedItem" representedClassName="FeedItem" syncable="YES" codeGenerationType="class">
|
||||||
|
<attribute name="author" optional="YES" attributeType="String" syncable="YES"/>
|
||||||
|
<attribute name="link" optional="YES" attributeType="String" syncable="YES"/>
|
||||||
|
<attribute name="published" optional="YES" attributeType="Transformable" customClassName="NSArray" syncable="YES"/>
|
||||||
|
<attribute name="subtitle" optional="YES" attributeType="String" syncable="YES"/>
|
||||||
|
<attribute name="summary" optional="YES" attributeType="String" syncable="YES"/>
|
||||||
|
<attribute name="title" optional="YES" attributeType="String" syncable="YES"/>
|
||||||
|
<relationship name="feed" optional="YES" maxCount="1" deletionRule="Nullify" destinationEntity="Feed" inverseName="items" inverseEntity="Feed" syncable="YES"/>
|
||||||
|
<relationship name="tags" optional="YES" toMany="YES" deletionRule="Cascade" ordered="YES" destinationEntity="FeedTag" inverseName="feedItem" inverseEntity="FeedTag" syncable="YES"/>
|
||||||
|
</entity>
|
||||||
|
<entity name="FeedTag" representedClassName="FeedTag" syncable="YES" codeGenerationType="class">
|
||||||
|
<attribute name="name" optional="YES" attributeType="String" syncable="YES"/>
|
||||||
|
<relationship name="feedItem" optional="YES" maxCount="1" deletionRule="Nullify" destinationEntity="FeedItem" inverseName="tags" inverseEntity="FeedItem" syncable="YES"/>
|
||||||
|
</entity>
|
||||||
|
<elements>
|
||||||
|
<element name="FeedItem" positionX="-36" positionY="-36" width="128" height="165"/>
|
||||||
|
<element name="FeedTag" positionX="0" positionY="54" width="128" height="75"/>
|
||||||
|
<element name="Feed" positionX="27" positionY="9" width="128" height="195"/>
|
||||||
|
</elements>
|
||||||
|
</model>
|
||||||
@@ -21,33 +21,66 @@
|
|||||||
// SOFTWARE.
|
// SOFTWARE.
|
||||||
|
|
||||||
#import "NewsController.h"
|
#import "NewsController.h"
|
||||||
|
#import "PyHandler.h"
|
||||||
|
#import "AppDelegate.h"
|
||||||
|
#import "DBv1+CoreDataModel.h"
|
||||||
|
|
||||||
@interface NewsController ()
|
@interface NewsController ()
|
||||||
@property (weak) IBOutlet NSMenuItem *pauseItem;
|
@property (weak) IBOutlet NSMenuItem *pauseItem;
|
||||||
@property (weak) IBOutlet NSMenuItem *updateAllItem;
|
@property (weak) IBOutlet NSMenuItem *updateAllItem;
|
||||||
@property (weak) IBOutlet NSMenuItem *openUnreadItem;
|
@property (weak) IBOutlet NSMenuItem *openUnreadItem;
|
||||||
@property (weak) IBOutlet NSManagedObjectContext *managedObjectContext;
|
@property (retain) NSManagedObjectContext *managedContext;
|
||||||
@end
|
@end
|
||||||
|
|
||||||
@implementation NewsController
|
@implementation NewsController
|
||||||
|
|
||||||
- (void)viewDidLoad {
|
- (void)awakeFromNib {
|
||||||
[super viewDidLoad];
|
[super awakeFromNib];
|
||||||
// Do view setup here.
|
self.managedContext = [((AppDelegate*)[NSApp delegate]) persistentContainer].viewContext;
|
||||||
}
|
}
|
||||||
|
|
||||||
- (IBAction)pauseUpdates:(NSMenuItem *)sender {
|
- (IBAction)pauseUpdates:(NSMenuItem *)sender {
|
||||||
NSLog(@"pause");
|
NSLog(@"pause");
|
||||||
NSLog(@"%@", self.managedObjectContext);
|
NSLog(@"%@", self.managedContext);
|
||||||
}
|
}
|
||||||
- (IBAction)updateAllFeeds:(NSMenuItem *)sender {
|
- (IBAction)updateAllFeeds:(NSMenuItem *)sender {
|
||||||
NSLog(@"update all");
|
NSLog(@"update all");
|
||||||
|
NSDictionary * obj = [PyHandler getFeed:@"https://feeds.feedburner.com/simpledesktops" withEtag:nil andModified:nil];
|
||||||
|
NSLog(@"obj = %@", obj);
|
||||||
|
// TODO: check status code
|
||||||
|
/*
|
||||||
|
Feed *a = [[Feed alloc] initWithEntity:Feed.entity insertIntoManagedObjectContext:self.managedContext];
|
||||||
|
a.title = obj[@"feed"][@"title"];
|
||||||
|
a.subtitle = obj[@"feed"][@"subtitle"];
|
||||||
|
a.author = obj[@"feed"][@"author"];
|
||||||
|
a.link = obj[@"feed"][@"link"];
|
||||||
|
a.published = obj[@"feed"][@"published"];
|
||||||
|
a.icon = obj[@"feed"][@"icon"];
|
||||||
|
a.etag = obj[@"header"][@"etag"];
|
||||||
|
a.date = obj[@"header"][@"date"];
|
||||||
|
a.modified = obj[@"header"][@"modified"];
|
||||||
|
for (NSDictionary *entry in obj[@"entries"]) {
|
||||||
|
FeedItem *b = [[FeedItem alloc] initWithEntity:FeedItem.entity insertIntoManagedObjectContext:self.managedContext];
|
||||||
|
b.title = entry[@"title"];
|
||||||
|
b.subtitle = entry[@"subtitle"];
|
||||||
|
b.author = entry[@"author"];
|
||||||
|
b.link = entry[@"link"];
|
||||||
|
b.published = entry[@"published"];
|
||||||
|
b.summary = entry[@"summary"];
|
||||||
|
for (NSString *tag in entry[@"tags"]) {
|
||||||
|
FeedTag *c = [[FeedTag alloc] initWithEntity:FeedTag.entity insertIntoManagedObjectContext:self.managedContext];
|
||||||
|
c.name = tag;
|
||||||
|
[b addTagsObject:c];
|
||||||
|
}
|
||||||
|
[a addItemsObject:b];
|
||||||
|
}*/
|
||||||
}
|
}
|
||||||
- (IBAction)openAllUnread:(NSMenuItem *)sender {
|
- (IBAction)openAllUnread:(NSMenuItem *)sender {
|
||||||
NSLog(@"all unread");
|
NSLog(@"all unread");
|
||||||
}
|
}
|
||||||
- (IBAction)addFeed:(NSButton *)sender {
|
- (IBAction)addFeed:(NSButton *)sender {
|
||||||
NSLog(@"add feed");
|
NSLog(@"add feed");
|
||||||
NSLog(@"%@", self.managedObjectContext);
|
NSLog(@"%@", self.managedContext);
|
||||||
}
|
}
|
||||||
- (IBAction)removeFeed:(NSButton *)sender {
|
- (IBAction)removeFeed:(NSButton *)sender {
|
||||||
NSLog(@"del feed");
|
NSLog(@"del feed");
|
||||||
|
|||||||
@@ -31,11 +31,12 @@
|
|||||||
@end
|
@end
|
||||||
|
|
||||||
@implementation Preferences
|
@implementation Preferences
|
||||||
|
- (void)awakeFromNib {
|
||||||
- (void)windowDidLoad {
|
[super awakeFromNib];
|
||||||
[super windowDidLoad];
|
if (self.window.contentView.subviews.count == 0) {
|
||||||
NSLog(@"%@", @"hi");
|
self.window.contentView = self.viewGeneral;
|
||||||
// Implement this method to handle any initialization after your window controller's window has been loaded from its nib file.
|
self.toolbar.selectedItemIdentifier = self.toolbar.items.firstObject.itemIdentifier;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
- (IBAction)clickGeneral:(NSToolbarItem *)sender {
|
- (IBAction)clickGeneral:(NSToolbarItem *)sender {
|
||||||
|
|||||||
@@ -1,4 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
|
||||||
<model type="com.apple.IDECoreDataModeler.DataModel" documentVersion="1.0" lastSavedToolsVersion="1" systemVersion="11A491" minimumToolsVersion="Automatic" sourceLanguage="Objective-C" userDefinedModelVersionIdentifier="">
|
|
||||||
<elements/>
|
|
||||||
</model>
|
|
||||||
Reference in New Issue
Block a user