Skip to content
This repository was archived by the owner on Feb 13, 2025. It is now read-only.

Commit 1408998

Browse files
author
Victor Barros
committed
Merge branch 'release/3.3.9'
Former-commit-id: 9738d48
2 parents 9e2c9d0 + f4baa11 commit 1408998

23 files changed

+1308
-344
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,3 +14,4 @@ docs
1414
Kinvey/build
1515
Carthage
1616
!Carthage/Checkouts/NSPredicate-MongoDB-Adaptor
17+
Kinvey.framework.zip

.travis.yml

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,18 @@ before_script:
1212
- security import ./scripts/certs/dist.p12 -k ~/Library/Keychains/ios-build.keychain
1313
-P $KEY_PASSWORD -T /usr/bin/codesign
1414
- date
15+
- carthage version
1516
- carthage checkout --no-use-binaries
16-
- travis_wait 30 carthage build --platform iOS
17+
- carthage checkout realm-cocoa
18+
- travis_wait 30 carthage build --platform iOS PromiseKit
19+
- travis_wait 30 carthage build --platform iOS KeychainAccess
20+
- travis_wait 30 carthage build --platform iOS ObjectMapper
21+
- travis_wait 30 carthage build --platform iOS XCGLogger
22+
- travis_wait 30 carthage build --platform iOS KIF
23+
- travis_wait 30 carthage build --platform iOS CwlPreconditionTesting
1724
- date
1825
script:
19-
- travis_wait 30 make test
26+
- travis_retry make test
2027
after_script:
2128
- date
2229
- security delete-keychain ios-build.keychain
@@ -26,3 +33,4 @@ env:
2633
global:
2734
- secure: a8tGuJggBK0qyY9oOEp1Y0zeA0zTu8safu34t7RNE3IPRj116rIKf1e/y9FxYRKu5BWmc62K8KTM0mPwsPgef7fizleHqPEE6brUJ3hiysNh92gDLHjqHKq6XK3WuMCDTKmgtbdJQbIBGGfAq+xkLCrhDMkm++88p1vmNbR2k2flpvHIV8opnIBsny62pMmgt8prEtsAT5NCVelVSlyRkwiVqvWk+zR9+Wi4jRWr24cv7WBjKgGO/LcxYi/zQEaLK3Ya38TFX29Ky6thNySHpikqDOiAzUwk6byZ05z8GiQ+TJ4P1+nzpKj4ZFg75v0A1wGkssOznuzZeRjl2GOyfqSsdoFflem9mLF97W3h0jUmzI6X3rP050gYgnjklacT9yk36IfsHdr1d6VTsU1Tx/z4yg8fDXTdY5SFIGZ/GReBwmvyVpbaR3yGbyKkaVSRSU8ixW1zq7BGZGSnMj+doKT5231wf1Be8M5PBtorBh/arOynZPOhpxzAFsoRKL9GRSgxuQIzFOdE/u56PfxjDhTCzuJu0F0ynlR6fIX2PWdrhejfvDpWx/dJWr9x85BKL3rGO8JaXAXlbils+CoEY/Pyfs2UoAaV8TGJR12FJbyl70VZ1hq/qimbFJ6z8TF435LrAA1/VO7qkDLgIJeqPnVnmKiPP3qNHBCNZA1vgzY=
2835
- secure: IW9jgSdH76Rgp4Hf45+7saqTYslau7K/KgnRtizVZnQwI31b/dMrimMuQj3m6R80ymetz1ZhLk5dX83g+Y5A4XAJjspk2vaAE3ZIZUo6mqdtkRxzxkomN5HZEzEAj8SdjQ4GZxLHX2skATP78SWKJrr7vBbfigPm/Pp8gt4AfKzmfVnBGiN8niU6q/qSUNq67j+F0J/bB2hhOQjIO4mbHRAPW+AygGV9/o+25k+fL4yXWpsDoKzMFTsWHp9H9NkevGFXwK7crGX/Bgo8QESOvVZT4JEnHapEKnT8tAkT3wUCNKiPp60lAo9r/eggASU2a8Oq03wSZMv1F88ORzBVKQfSlNHcV0XOylYL2JZqtzznPmTRx2biHncB8xSg/DBh4MtUKuuProsq+/KIy067pITYCudEqjqL7YjaLlDEUl+YiahOY4DJ391GaCkCklUbHv1TW3vdDpBSvjtC4Ny7anNqK5Mo/cwscPGBTgkQkFyzRf48WLf79wH1sonIVQXv5wKxJAAn08K48dUfhK7yuePjHKmXsKpSjJJbPPlcAEvOknGQnG9OQ6MWb2A/Wk01ki29CENRFbVZCWG2CcM8bPTLGxz07Dp6VH3nxQoQHgsH/J4j1hWfnL1DGacFrDzC/SFhB78v65FxheV5ZOEx+Es/eSRiPEdX8gdjZnqOb3Y=
36+
- secure: nawAGSUbPzyAH/SllDj9q6IOLGaF91DQsudQYx4AJs+swwFhAvAe3hM6vWdGVuDLxqVHQ4+4AAQFecXq/mDi5WtRISPbGHWVtOx7Q6szL8Y54uZKVmKV06wnAo4nrwu8pp1+TbRLYwG+/oJIfabW2yuMgNn7nWFm5SdE0GuduVI7Ho9p0/SeaE7DCtaNKgyCLfspAA8svCYMK0N9NzBVhkTPzWRiIF174k5VE28lZox/fjN5x4j1aaMBUhElkJELjcWKdTX11MnCyybWjJZ1YTMK/A4vBtZCFmHIFuhtQiqWCQIWxeo8axRDBZEMzZ5U+9zSfaz0w0wovWI/cvtRFS0j/7UQ4o6alO7EOMdhH5rRl8atOxSS+Rl81Oz1kZiLhjJa/feAN5QGQ423L4CyfDeEBV6t1D8Cmb1jlficswFeX2rQw82qFnI2ua9p8HrpUJydDsGR6AoOI+KUamwi53OC+hsG/M1sA4MOAPEJoMGT6dyER5UVE63JB45All9TDJWV2EZz+11FQIp6P/62/QXJBQhqxu+W0u/3q7KqoSgmxFx/QSbv8hpK9aJWDQNf5cv02bT+vJnMv4Lrf+XcSVOWH0TwpL5nVcRJXyq2A6FCGdE2S0Xa0+KkgZdF7p3qk4jN32CryHImRp8T3qbkA6Q9nNdxATt7P9OjYl/XqDA=

Cartfile.resolved

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ github "mattgallagher/CwlPreconditionTesting" "4a4bc648de0f975ab3e04614a25bf26b3
22
github "kif-framework/KIF" "v3.5.1"
33
github "kishikawakatsumi/KeychainAccess" "v3.0.1"
44
github "tjboneman/NSPredicate-MongoDB-Adaptor" "2444d4a790527eb5c9fcb4e4f7b4af417048ae18"
5-
github "Hearst-DD/ObjectMapper" "2.2.2"
5+
github "Hearst-DD/ObjectMapper" "2.2.3"
66
github "mxcl/PromiseKit" "4.1.7"
77
github "DaveWoodCom/XCGLogger" "Version_4.0.0"
8-
github "realm/realm-cocoa" "v2.4.2"
8+
github "realm/realm-cocoa" "v2.4.3"

Kinvey.podspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ Pod::Spec.new do |s|
1616
#
1717

1818
s.name = "Kinvey"
19-
s.version = "3.3.8"
19+
s.version = "3.3.9"
2020
s.summary = "Kinvey iOS SDK"
2121

2222
# This description is used to generate tags and improve search results.

Kinvey/Kinvey.xcodeproj/project.pbxproj

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
572005CA1D342B2800AE9AC5 /* Book.swift in Sources */ = {isa = PBXBuildFile; fileRef = 572005C91D342B2800AE9AC5 /* Book.swift */; };
2222
5728212D1C63E0F500373EC8 /* File.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5728212C1C63E0F500373EC8 /* File.swift */; };
2323
5728212F1C63E10700373EC8 /* FileStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5728212E1C63E10700373EC8 /* FileStore.swift */; };
24-
5728213B1C6482C000373EC8 /* NSURLSessionTaskRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5728213A1C6482C000373EC8 /* NSURLSessionTaskRequest.swift */; };
24+
5728213B1C6482C000373EC8 /* URLSessionTaskRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5728213A1C6482C000373EC8 /* URLSessionTaskRequest.swift */; };
2525
572C457B1C86690700A41935 /* NSDate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 572C457A1C86690700A41935 /* NSDate.swift */; };
2626
572C458E1C86A70000A41935 /* NSDate2StringValueTransformer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 572C458D1C86A70000A41935 /* NSDate2StringValueTransformer.swift */; };
2727
572C45901C86AC7C00A41935 /* ValueTransformer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 572C458F1C86AC7C00A41935 /* ValueTransformer.swift */; };
@@ -68,14 +68,14 @@
6868
577155521CA0F1D400C91B4B /* FindOperationTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5765B8351C92365700080FFA /* FindOperationTest.swift */; };
6969
577155BB1CA21CC200C91B4B /* Migration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 577155BA1CA21CC200C91B4B /* Migration.swift */; };
7070
5771F9FF1D301F6300903777 /* Event.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5771F9FE1D301F6300903777 /* Event.swift */; };
71-
5776EEC01E31740B003B9DF0 /* MIC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5776EEBF1E31740B003B9DF0 /* MIC.swift */; };
7271
5776EE9A1E2FFA38003B9DF0 /* XCGLogger.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 577751381DF8B8EA006C98F1 /* XCGLogger.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
7372
5776EE9B1E2FFA7D003B9DF0 /* XCGLogger.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 577751381DF8B8EA006C98F1 /* XCGLogger.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
7473
5776EE9C1E300658003B9DF0 /* Person.swift in Sources */ = {isa = PBXBuildFile; fileRef = 571991081CB45EEE00070CDA /* Person.swift */; };
7574
5776EE9D1E300731003B9DF0 /* RealmSwift.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 57B0C1DC1CDCE88900492D6C /* RealmSwift.framework */; };
7675
5776EE9E1E300786003B9DF0 /* Person.swift in Sources */ = {isa = PBXBuildFile; fileRef = 571991081CB45EEE00070CDA /* Person.swift */; };
7776
5776EE9F1E3007AC003B9DF0 /* RealmSwift.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 57B0C1DC1CDCE88900492D6C /* RealmSwift.framework */; };
7877
5776EEA01E300898003B9DF0 /* Person.swift in Sources */ = {isa = PBXBuildFile; fileRef = 571991081CB45EEE00070CDA /* Person.swift */; };
78+
5776EEC01E31740B003B9DF0 /* MIC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5776EEBF1E31740B003B9DF0 /* MIC.swift */; };
7979
577751441DF8E8EC006C98F1 /* MockKinveyBackend.swift in Sources */ = {isa = PBXBuildFile; fileRef = 57136F621D5D23BF00731DDB /* MockKinveyBackend.swift */; };
8080
577751451DF8E901006C98F1 /* MockKinveyBackend.swift in Sources */ = {isa = PBXBuildFile; fileRef = 57136F621D5D23BF00731DDB /* MockKinveyBackend.swift */; };
8181
577C9E781C1F89C700BF49EE /* Credential.swift in Sources */ = {isa = PBXBuildFile; fileRef = 577C9E771C1F89C700BF49EE /* Credential.swift */; };
@@ -169,8 +169,6 @@
169169
57A2ED8E1C49D20B006D26A9 /* HttpRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 57A2ED8D1C49D20B006D26A9 /* HttpRequest.swift */; };
170170
57A2ED901C49D30B006D26A9 /* Endpoint.swift in Sources */ = {isa = PBXBuildFile; fileRef = 57A2ED8F1C49D30B006D26A9 /* Endpoint.swift */; };
171171
57A2ED961C4D5F74006D26A9 /* Media.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 57A2ED951C4D5F74006D26A9 /* Media.xcassets */; };
172-
57A3BF981C8912A900DCD439 /* KNVClient.m in Sources */ = {isa = PBXBuildFile; fileRef = 57A3BF961C8912A900DCD439 /* KNVClient.m */; };
173-
57A3BF991C8946D200DCD439 /* KNVClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 57A3BF951C8912A900DCD439 /* KNVClient.h */; settings = {ATTRIBUTES = (Public, ); }; };
174172
57A3EBB51DDA81AA00983D2F /* Kinvey.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 57A27C811C178F17000DF951 /* Kinvey.framework */; };
175173
57A3EBB61DDA81B200983D2F /* Kinvey.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = 57A27C811C178F17000DF951 /* Kinvey.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
176174
57A3EBB71DDA88AA00983D2F /* KinveyTestCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 57A27C901C178F18000DF951 /* KinveyTestCase.swift */; };
@@ -249,8 +247,6 @@
249247
57E7C7B71C519FD000848748 /* HttpHeaderCredential.swift in Sources */ = {isa = PBXBuildFile; fileRef = 57E7C7B61C519FD000848748 /* HttpHeaderCredential.swift */; };
250248
57F5621B1E006A1B00E1AC8E /* KinveyTestCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 57A27C901C178F18000DF951 /* KinveyTestCase.swift */; };
251249
57F5621C1E006A5400E1AC8E /* MockKinveyBackend.swift in Sources */ = {isa = PBXBuildFile; fileRef = 57136F621D5D23BF00731DDB /* MockKinveyBackend.swift */; };
252-
57F717BD1CAF165500DD7750 /* KCSPush.m in Sources */ = {isa = PBXBuildFile; fileRef = 57B23DAB1C7F9414006403CC /* KCSPush.m */; };
253-
57F717BE1CAF165800DD7750 /* KCSPush.h in Headers */ = {isa = PBXBuildFile; fileRef = 57B23DAA1C7F9414006403CC /* KCSPush.h */; };
254250
57F91C261D6D15590012850A /* TaskProgressRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 57F91C251D6D15590012850A /* TaskProgressRequest.swift */; };
255251
57F91C291D6E2C020012850A /* CountOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 57F91C281D6E2C020012850A /* CountOperation.swift */; };
256252
57FB57D91C86581300AA590F /* String.swift in Sources */ = {isa = PBXBuildFile; fileRef = 57FB57D81C86581300AA590F /* String.swift */; };
@@ -535,7 +531,7 @@
535531
572005C91D342B2800AE9AC5 /* Book.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Book.swift; sourceTree = "<group>"; };
536532
5728212C1C63E0F500373EC8 /* File.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = File.swift; sourceTree = "<group>"; };
537533
5728212E1C63E10700373EC8 /* FileStore.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FileStore.swift; sourceTree = "<group>"; };
538-
5728213A1C6482C000373EC8 /* NSURLSessionTaskRequest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NSURLSessionTaskRequest.swift; sourceTree = "<group>"; };
534+
5728213A1C6482C000373EC8 /* URLSessionTaskRequest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = URLSessionTaskRequest.swift; sourceTree = "<group>"; };
539535
572C457A1C86690700A41935 /* NSDate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NSDate.swift; sourceTree = "<group>"; };
540536
572C458D1C86A70000A41935 /* NSDate2StringValueTransformer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NSDate2StringValueTransformer.swift; sourceTree = "<group>"; };
541537
572C458F1C86AC7C00A41935 /* ValueTransformer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ValueTransformer.swift; sourceTree = "<group>"; };
@@ -648,8 +644,6 @@
648644
57A2ED8D1C49D20B006D26A9 /* HttpRequest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HttpRequest.swift; sourceTree = "<group>"; };
649645
57A2ED8F1C49D30B006D26A9 /* Endpoint.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Endpoint.swift; sourceTree = "<group>"; };
650646
57A2ED951C4D5F74006D26A9 /* Media.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Media.xcassets; sourceTree = "<group>"; };
651-
57A3BF951C8912A900DCD439 /* KNVClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KNVClient.h; sourceTree = "<group>"; };
652-
57A3BF961C8912A900DCD439 /* KNVClient.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KNVClient.m; sourceTree = "<group>"; };
653647
57A3EBBA1DDA8BB900983D2F /* auth.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = auth.html; sourceTree = "<group>"; };
654648
57A4656C1CBEF7B6009E7384 /* PersistableTestCase.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PersistableTestCase.swift; sourceTree = "<group>"; };
655649
57A4656E1CC00931009E7384 /* PerformanceTestCase.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PerformanceTestCase.swift; sourceTree = "<group>"; };
@@ -1057,7 +1051,7 @@
10571051
57BB56B31C4D8D2B00F6B548 /* LocalRequest.swift */,
10581052
57470FA61C7698B30096B15F /* MultiRequest.swift */,
10591053
57FF4F6E1CD02FF7002947FF /* OperationQueueRequest.swift */,
1060-
5728213A1C6482C000373EC8 /* NSURLSessionTaskRequest.swift */,
1054+
5728213A1C6482C000373EC8 /* URLSessionTaskRequest.swift */,
10611055
57A2ED851C49B9D5006D26A9 /* Response.swift */,
10621056
57A2ED871C49BADD006D26A9 /* HttpResponse.swift */,
10631057
57BB56B51C4D8E8400F6B548 /* LocalResponse.swift */,
@@ -2015,7 +2009,7 @@
20152009
57470FA31C76847F0096B15F /* WriteOperation.swift in Sources */,
20162010
574B0FA71C729EAF00CDC48F /* GetOperation.swift in Sources */,
20172011
57470FA51C76926B0096B15F /* PushOperation.swift in Sources */,
2018-
5728213B1C6482C000373EC8 /* NSURLSessionTaskRequest.swift in Sources */,
2012+
5728213B1C6482C000373EC8 /* URLSessionTaskRequest.swift in Sources */,
20192013
57E1C3B31C1822B100578974 /* ResponseParser.swift in Sources */,
20202014
57FF4F6D1CCFE71B002947FF /* RemoveOperation.swift in Sources */,
20212015
);
@@ -2674,7 +2668,7 @@
26742668
SKIP_INSTALL = YES;
26752669
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
26762670
SWIFT_VERSION = 3.0;
2677-
TVOS_DEPLOYMENT_TARGET = 9.0;
2671+
TVOS_DEPLOYMENT_TARGET = 9.2;
26782672
WATCHOS_DEPLOYMENT_TARGET = 2.2;
26792673
};
26802674
name = Debug;
@@ -2702,7 +2696,7 @@
27022696
PROVISIONING_PROFILE = "";
27032697
SKIP_INSTALL = YES;
27042698
SWIFT_VERSION = 3.0;
2705-
TVOS_DEPLOYMENT_TARGET = 9.0;
2699+
TVOS_DEPLOYMENT_TARGET = 9.2;
27062700
WATCHOS_DEPLOYMENT_TARGET = 2.2;
27072701
};
27082702
name = Release;

Kinvey/Kinvey/Entity.swift

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ public typealias List<T: RealmSwift.Object> = RealmSwift.List<T>
1515

1616
internal func StringFromClass(cls: AnyClass) -> String {
1717
var className = NSStringFromClass(cls)
18-
let regex = try! NSRegularExpression(pattern: "RLM.+_.+") // regex to catch Realm classnames like `RLMStandalone_`, `RLMUnmanaged_` or `RLMAccessor_`
18+
let regex = try! NSRegularExpression(pattern: "(?:RLM.+_(.+))|(?:RLM:\\S* (.*))") // regex to catch Realm classnames like `RLMStandalone_`, `RLMUnmanaged_`, `RLMAccessor_` or `RLM:Unmanaged `
1919
var nMatches = regex.numberOfMatches(in: className, range: NSRange(location: 0, length: className.characters.count))
2020
while nMatches > 0 {
2121
let classObj: AnyClass! = NSClassFromString(className)!
@@ -93,16 +93,22 @@ open class Entity: Object, Persistable {
9393
*/
9494
open override class func ignoredProperties() -> [String] {
9595
var properties = [String]()
96-
for property in ObjCRuntime.properties(self) {
97-
if !(ObjCRuntime.type(property.1, isSubtypeOf: NSDate.self) ||
98-
ObjCRuntime.type(property.1, isSubtypeOf: NSData.self) ||
99-
ObjCRuntime.type(property.1, isSubtypeOf: NSString.self) ||
100-
ObjCRuntime.type(property.1, isSubtypeOf: RLMObjectBase.self) ||
101-
ObjCRuntime.type(property.1, isSubtypeOf: RLMOptionalBase.self) ||
102-
ObjCRuntime.type(property.1, isSubtypeOf: RLMListBase.self) ||
103-
ObjCRuntime.type(property.1, isSubtypeOf: RLMCollection.self))
96+
for (propertyName, (type, subType)) in ObjCRuntime.properties(forClass: self) {
97+
if let type = type,
98+
let typeClass = NSClassFromString(type),
99+
!(ObjCRuntime.type(typeClass, isSubtypeOf: NSDate.self) ||
100+
ObjCRuntime.type(typeClass, isSubtypeOf: NSData.self) ||
101+
ObjCRuntime.type(typeClass, isSubtypeOf: NSString.self) ||
102+
ObjCRuntime.type(typeClass, isSubtypeOf: RLMObjectBase.self) ||
103+
ObjCRuntime.type(typeClass, isSubtypeOf: RLMOptionalBase.self) ||
104+
ObjCRuntime.type(typeClass, isSubtypeOf: RLMListBase.self) ||
105+
ObjCRuntime.type(typeClass, isSubtypeOf: RLMCollection.self))
104106
{
105-
properties.append(property.0)
107+
properties.append(propertyName)
108+
} else if let subType = subType,
109+
let _ = NSProtocolFromString(subType)
110+
{
111+
properties.append(propertyName)
106112
}
107113
}
108114
return properties

Kinvey/Kinvey/File.swift

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,8 @@ open class File: Object, Mappable {
120120
metadata <- map[PersistableMetadataKey]
121121
publicAccessible <- map["_public"]
122122
fileName <- map["_filename"]
123-
mimeType <- map["_mimetype"]
123+
mimeType <- map["mimeType"]
124+
size.value <- map["size"]
124125
upload <- map["_uploadURL"]
125126
download <- map["_downloadURL"]
126127
expiresAt <- (map["_expiresAt"], KinveyDateTransform())

0 commit comments

Comments
 (0)