Skip to content

Commit 7d45067

Browse files
committed
Add NSData.init(resource:) for initializing NSData with R.file.* resources
1 parent 3b24c5a commit 7d45067

File tree

2 files changed

+33
-0
lines changed

2 files changed

+33
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
//
2+
// NSData+FileResource.swift
3+
// R.swift.Library
4+
//
5+
// Created by Tom Lokhorst on 2016-03-11.
6+
// Copyright © 2016 Mathijs Kadijk. All rights reserved.
7+
//
8+
9+
import Foundation
10+
11+
public extension NSData {
12+
13+
/**
14+
Creates and returns NSData with the contents of the specified file resource (R.file.*).
15+
16+
- parameter resource: The file resource (R.file.*)
17+
18+
- returns: A NSData object with the contents of the specified file.
19+
*/
20+
public convenience init?(resource: FileResourceType) {
21+
let bundle = resource.bundle ?? NSBundle.mainBundle()
22+
23+
guard let url = bundle.URLForResource(resource.name, withExtension: resource.pathExtension) else {
24+
return nil
25+
}
26+
27+
self.init(contentsOfURL: url)
28+
}
29+
}

R.swift.Library.xcodeproj/project.pbxproj

+4
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@
5555
D592465E1C117A55007F94C7 /* RswiftTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D592465D1C117A55007F94C7 /* RswiftTests.swift */; };
5656
D5E435A91C3CFB460091090C /* NibResource+UIKit.swift in Sources */ = {isa = PBXBuildFile; fileRef = D5E435A81C3CFB460091090C /* NibResource+UIKit.swift */; };
5757
D5E435AD1C3D00770091090C /* FileResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = D5E435AC1C3D00770091090C /* FileResource.swift */; };
58+
E20F34A71C92B44100338F81 /* NSData+FileResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = E20F34A61C92B44100338F81 /* NSData+FileResource.swift */; };
5859
/* End PBXBuildFile section */
5960

6061
/* Begin PBXContainerItemProxy section */
@@ -104,6 +105,7 @@
104105
D592465F1C117A55007F94C7 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
105106
D5E435A81C3CFB460091090C /* NibResource+UIKit.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "NibResource+UIKit.swift"; sourceTree = "<group>"; };
106107
D5E435AC1C3D00770091090C /* FileResource.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FileResource.swift; sourceTree = "<group>"; };
108+
E20F34A61C92B44100338F81 /* NSData+FileResource.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "NSData+FileResource.swift"; sourceTree = "<group>"; };
107109
/* End PBXFileReference section */
108110

109111
/* Begin PBXFrameworksBuildPhase section */
@@ -178,6 +180,7 @@
178180
isa = PBXGroup;
179181
children = (
180182
D56DC7721C42B65C00623437 /* NSBundle+FileResource.swift */,
183+
E20F34A61C92B44100338F81 /* NSData+FileResource.swift */,
181184
);
182185
path = Foundation;
183186
sourceTree = "<group>";
@@ -443,6 +446,7 @@
443446
D543F9BD1C14980600D16A0C /* ReuseIdentifierProtocol.swift in Sources */,
444447
D543F9C11C14984300D16A0C /* NibResource.swift in Sources */,
445448
D553F5851C44157000885232 /* ImageResource.swift in Sources */,
449+
E20F34A71C92B44100338F81 /* NSData+FileResource.swift in Sources */,
446450
D57E1EB51C3D774000DDA68F /* UIFont+FontResource.swift in Sources */,
447451
D5588CAB1C3F9DBE00912F97 /* UINib+NibResource.swift in Sources */,
448452
D553F5871C44170E00885232 /* UIImage+ImageResource.swift in Sources */,

0 commit comments

Comments
 (0)