{"abstract":[{"text":"A resource that represents an abstract URL.","type":"text"}],"hierarchy":{"paths":[["doc:\/\/com.apple.documentation\/documentation\/technologies","doc:\/\/FSKit\/documentation\/FSKit"]]},"identifier":{"interfaceLanguage":"swift","url":"doc:\/\/FSKit\/documentation\/FSKit\/FSGenericURLResource"},"kind":"symbol","legalNotices":{"copyright":"Copyright &copy; 2026 Apple Inc. All rights reserved.","privacyPolicy":"https:\/\/www.apple.com\/privacy\/privacy-policy","termsOfUse":"https:\/\/www.apple.com\/legal\/internet-services\/terms\/site.html"},"metadata":{"availableLanguages":["de-DE","en-US","es-419","fr-FR","it-IT","ja-JP","ko-KR","pt-BR","zh-CN"],"externalID":"c:objc(cs)FSGenericURLResource","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"FSGenericURLResource"}],"modules":[{"name":"FSKit"}],"navigatorTitle":[{"kind":"identifier","text":"FSGenericURLResource"}],"platforms":[{"introducedAt":"26.0","name":"macOS"}],"role":"symbol","roleHeading":"Class","symbolKind":"class","title":"FSGenericURLResource"},"primaryContentSections":[{"declarations":[{"languages":["swift"],"platforms":["macOS"],"tokens":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"FSGenericURLResource"}]}],"kind":"declarations"},{"content":[{"anchor":"overview","level":2,"text":"Overview","type":"heading"},{"inlineContent":[{"text":"An ","type":"text"},{"code":"FSGenericURLResource","type":"codeVoice"},{"text":" is a completely abstract resource.","type":"text"},{"text":" ","type":"text"},{"text":"The only reference to its contents is a single URL, the contents of which are arbitrary.","type":"text"},{"text":" ","type":"text"},{"text":"This URL might represent a PCI locator string like ","type":"text"},{"code":"\/pci@f0000000\/usb@5","type":"codeVoice"},{"text":", or some sort of network address for a remote file system.","type":"text"},{"text":" ","type":"text"},{"text":"FSKit leaves interpretation of the URL and its contents entirely up to your implementation.","type":"text"}],"type":"paragraph"},{"inlineContent":[{"text":"Use the ","type":"text"},{"code":"Info.plist","type":"codeVoice"},{"text":" key ","type":"text"},{"code":"FSSupportedSchemes","type":"codeVoice"},{"text":" to provide an array of case-insensitive URL schemes that your implementation supports.","type":"text"},{"text":" ","type":"text"},{"text":"The following example shows how a hypothetical ","type":"text"},{"code":"FSGenericURLResource","type":"codeVoice"},{"text":" implementation declares support for the ","type":"text"},{"code":"rsh","type":"codeVoice"},{"text":" and ","type":"text"},{"code":"ssh","type":"codeVoice"},{"text":" URL schemes:","type":"text"}],"type":"paragraph"},{"code":["<key>FSSupportedSchemes<\/key>","<array>","    <string>rsh<\/string>","    <string>ssh<\/string>","<\/array>"],"copyToClipboard":true,"lineAnnotations":[],"showLineNumbers":false,"syntax":"swift","type":"codeListing","wrap":0}],"kind":"content"}],"relationshipsSections":[{"identifiers":["doc:\/\/FSKit\/documentation\/FSKit\/FSResource"],"kind":"relationships","title":"Inherits From","type":"inheritsFrom"},{"identifiers":["doc:\/\/com.apple.documentation\/documentation\/Swift\/CVarArg","doc:\/\/com.apple.documentation\/documentation\/Swift\/CustomDebugStringConvertible","doc:\/\/com.apple.documentation\/documentation\/Swift\/CustomStringConvertible","doc:\/\/com.apple.documentation\/documentation\/Swift\/Equatable","doc:\/\/com.apple.documentation\/documentation\/Swift\/Hashable","doc:\/\/com.apple.documentation\/documentation\/Foundation\/NSCoding","doc:\/\/com.apple.documentation\/documentation\/ObjectiveC\/NSObjectProtocol","doc:\/\/com.apple.documentation\/documentation\/Foundation\/NSSecureCoding"],"kind":"relationships","title":"Conforms To","type":"conformsTo"}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"seeAlsoSections":[{"anchor":"Resources","generated":true,"identifiers":["doc:\/\/FSKit\/documentation\/FSKit\/FSResource","doc:\/\/FSKit\/documentation\/FSKit\/FSBlockDeviceResource","doc:\/\/FSKit\/documentation\/FSKit\/FSPathURLResource"],"title":"Resources"}],"topicSections":[{"anchor":"Creating-a-generic-URL-resource","identifiers":["doc:\/\/FSKit\/documentation\/FSKit\/FSGenericURLResource\/init(url:)-2cmhi"],"title":"Creating a generic URL resource"},{"anchor":"Accessing-resource-properties","identifiers":["doc:\/\/FSKit\/documentation\/FSKit\/FSGenericURLResource\/url"],"title":"Accessing resource properties"},{"anchor":"Initializers","generated":true,"identifiers":["doc:\/\/FSKit\/documentation\/FSKit\/FSGenericURLResource\/init(URL:)-3957q"],"title":"Initializers"}],"variants":[{"paths":["\/documentation\/fskit\/fsgenericurlresource"],"traits":[{"interfaceLanguage":"swift"}]},{"paths":["\/documentation\/fskit\/fsgenericurlresource"],"traits":[{"interfaceLanguage":"occ"}]}],"references":{"FSKit-PageImage-card.png":{"alt":"A grid of document icons, standing upright, viewed from an isometric angle. The icons use different shades of blue to create a gradient effect.","identifier":"FSKit-PageImage-card.png","type":"image","variants":[{"traits":["2x","light"],"url":"\/images\/FSKit\/FSKit-PageImage-card@2x.png"},{"traits":["2x","dark"],"url":"\/images\/FSKit\/FSKit-PageImage-card~dark@2x.png"}]},"doc://FSKit/documentation/FSKit":{"abstract":[{"text":"Implement a file system that runs in user space.","type":"text"}],"identifier":"doc:\/\/FSKit\/documentation\/FSKit","images":[{"identifier":"FSKit-PageImage-card.png","type":"card"}],"kind":"symbol","role":"collection","title":"FSKit","type":"topic","url":"\/documentation\/fskit"},"doc://FSKit/documentation/FSKit/FSBlockDeviceResource":{"abstract":[{"text":"A resource that represents a block storage disk partition.","type":"text"}],"fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"FSBlockDeviceResource"}],"identifier":"doc:\/\/FSKit\/documentation\/FSKit\/FSBlockDeviceResource","kind":"symbol","navigatorTitle":[{"kind":"identifier","text":"FSBlockDeviceResource"}],"role":"symbol","title":"FSBlockDeviceResource","type":"topic","url":"\/documentation\/fskit\/fsblockdeviceresource"},"doc://FSKit/documentation/FSKit/FSGenericURLResource":{"abstract":[{"text":"A resource that represents an abstract URL.","type":"text"}],"fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"FSGenericURLResource"}],"identifier":"doc:\/\/FSKit\/documentation\/FSKit\/FSGenericURLResource","kind":"symbol","navigatorTitle":[{"kind":"identifier","text":"FSGenericURLResource"}],"role":"symbol","title":"FSGenericURLResource","type":"topic","url":"\/documentation\/fskit\/fsgenericurlresource"},"doc://FSKit/documentation/FSKit/FSGenericURLResource/init(URL:)-3957q":{"abstract":[],"fragments":[{"kind":"identifier","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"URL"},{"kind":"text","text":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:10Foundation3URLV","text":"URL"},{"kind":"text","text":")"}],"identifier":"doc:\/\/FSKit\/documentation\/FSKit\/FSGenericURLResource\/init(URL:)-3957q","kind":"symbol","role":"symbol","title":"init(URL:)","type":"topic","url":"\/documentation\/fskit\/fsgenericurlresource\/init(url:)-3957q"},"doc://FSKit/documentation/FSKit/FSGenericURLResource/init(url:)-2cmhi":{"abstract":[{"text":"Creates a generic URL resource with the given URL.","type":"text"}],"fragments":[{"kind":"identifier","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"url"},{"kind":"text","text":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:10Foundation3URLV","text":"URL"},{"kind":"text","text":")"}],"identifier":"doc:\/\/FSKit\/documentation\/FSKit\/FSGenericURLResource\/init(url:)-2cmhi","kind":"symbol","navigatorTitle":[{"kind":"text","text":"- "},{"kind":"identifier","text":"initWithURL:"}],"role":"symbol","title":"init(url:)","type":"topic","url":"\/documentation\/fskit\/fsgenericurlresource\/init(url:)-2cmhi"},"doc://FSKit/documentation/FSKit/FSGenericURLResource/url":{"abstract":[{"text":"The URL represented by the resource.","type":"text"}],"fragments":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"url"},{"kind":"text","text":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:10Foundation3URLV","text":"URL"}],"identifier":"doc:\/\/FSKit\/documentation\/FSKit\/FSGenericURLResource\/url","kind":"symbol","navigatorTitle":[{"kind":"identifier","text":"url"}],"role":"symbol","title":"url","type":"topic","url":"\/documentation\/fskit\/fsgenericurlresource\/url"},"doc://FSKit/documentation/FSKit/FSPathURLResource":{"abstract":[{"text":"A resource that represents a path in the system file space.","type":"text"}],"fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"FSPathURLResource"}],"identifier":"doc:\/\/FSKit\/documentation\/FSKit\/FSPathURLResource","kind":"symbol","navigatorTitle":[{"kind":"identifier","text":"FSPathURLResource"}],"role":"symbol","title":"FSPathURLResource","type":"topic","url":"\/documentation\/fskit\/fspathurlresource"},"doc://FSKit/documentation/FSKit/FSResource":{"abstract":[{"text":"An abstract resource a file system uses to provide data for a volume.","type":"text"}],"fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"FSResource"}],"identifier":"doc:\/\/FSKit\/documentation\/FSKit\/FSResource","kind":"symbol","navigatorTitle":[{"kind":"identifier","text":"FSResource"}],"role":"symbol","title":"FSResource","type":"topic","url":"\/documentation\/fskit\/fsresource"},"doc://com.apple.documentation/documentation/Foundation/NSCoding":{"abstract":[{"text":"A protocol that enables an object to be encoded and decoded for archiving and distribution.","type":"text"}],"fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"NSCoding"}],"identifier":"doc:\/\/com.apple.documentation\/documentation\/Foundation\/NSCoding","kind":"symbol","navigatorTitle":[{"kind":"identifier","text":"NSCoding"}],"role":"symbol","title":"NSCoding","type":"topic","url":"\/documentation\/foundation\/nscoding"},"doc://com.apple.documentation/documentation/Foundation/NSSecureCoding":{"abstract":[{"text":"A protocol that enables encoding and decoding in a manner that is robust against object substitution attacks.","type":"text"}],"fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"NSSecureCoding"}],"identifier":"doc:\/\/com.apple.documentation\/documentation\/Foundation\/NSSecureCoding","kind":"symbol","navigatorTitle":[{"kind":"identifier","text":"NSSecureCoding"}],"role":"symbol","title":"NSSecureCoding","type":"topic","url":"\/documentation\/foundation\/nssecurecoding"},"doc://com.apple.documentation/documentation/ObjectiveC/NSObjectProtocol":{"abstract":[{"text":"The group of methods that are fundamental to all Objective-C objects.","type":"text"}],"fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"NSObjectProtocol"}],"identifier":"doc:\/\/com.apple.documentation\/documentation\/ObjectiveC\/NSObjectProtocol","kind":"symbol","navigatorTitle":[{"kind":"identifier","text":"NSObjectProtocol"}],"role":"symbol","title":"NSObjectProtocol","type":"topic","url":"\/documentation\/objectivec\/nsobjectprotocol"},"doc://com.apple.documentation/documentation/Swift/CVarArg":{"abstract":[{"text":"A type whose instances can be encoded, and appropriately passed, as","type":"text"},{"text":" ","type":"text"},{"text":"elements of a C ","type":"text"},{"code":"va_list","type":"codeVoice"},{"text":".","type":"text"}],"fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"CVarArg"}],"identifier":"doc:\/\/com.apple.documentation\/documentation\/Swift\/CVarArg","kind":"symbol","navigatorTitle":[{"kind":"identifier","text":"CVarArg"}],"role":"symbol","title":"CVarArg","type":"topic","url":"\/documentation\/swift\/cvararg"},"doc://com.apple.documentation/documentation/Swift/CustomDebugStringConvertible":{"abstract":[{"text":"A type with a customized textual representation suitable for debugging","type":"text"},{"text":" ","type":"text"},{"text":"purposes.","type":"text"}],"fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"CustomDebugStringConvertible"}],"identifier":"doc:\/\/com.apple.documentation\/documentation\/Swift\/CustomDebugStringConvertible","kind":"symbol","navigatorTitle":[{"kind":"identifier","text":"CustomDebugStringConvertible"}],"role":"symbol","title":"CustomDebugStringConvertible","type":"topic","url":"\/documentation\/swift\/customdebugstringconvertible"},"doc://com.apple.documentation/documentation/Swift/CustomStringConvertible":{"abstract":[{"text":"A type with a customized textual representation.","type":"text"}],"fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"CustomStringConvertible"}],"identifier":"doc:\/\/com.apple.documentation\/documentation\/Swift\/CustomStringConvertible","kind":"symbol","navigatorTitle":[{"kind":"identifier","text":"CustomStringConvertible"}],"role":"symbol","title":"CustomStringConvertible","type":"topic","url":"\/documentation\/swift\/customstringconvertible"},"doc://com.apple.documentation/documentation/Swift/Equatable":{"abstract":[{"text":"A type that can be compared for value equality.","type":"text"}],"fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Equatable"}],"identifier":"doc:\/\/com.apple.documentation\/documentation\/Swift\/Equatable","kind":"symbol","navigatorTitle":[{"kind":"identifier","text":"Equatable"}],"role":"symbol","title":"Equatable","type":"topic","url":"\/documentation\/swift\/equatable"},"doc://com.apple.documentation/documentation/Swift/Hashable":{"abstract":[{"text":"A type that can be hashed into a ","type":"text"},{"code":"Hasher","type":"codeVoice"},{"text":" to produce an integer hash value.","type":"text"}],"fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Hashable"}],"identifier":"doc:\/\/com.apple.documentation\/documentation\/Swift\/Hashable","kind":"symbol","navigatorTitle":[{"kind":"identifier","text":"Hashable"}],"role":"symbol","title":"Hashable","type":"topic","url":"\/documentation\/swift\/hashable"},"doc://com.apple.documentation/documentation/technologies":{"abstract":[],"identifier":"doc:\/\/com.apple.documentation\/documentation\/technologies","kind":"technologies","role":"overview","title":"Technologies","type":"topic","url":"\/documentation\/technologies"}},"variantOverrides":[{"patch":[{"op":"replace","path":"\/identifier\/interfaceLanguage","value":"occ"},{"op":"replace","path":"\/metadata\/platforms","value":[{"introducedAt":"26.0","name":"macOS"}]},{"op":"replace","path":"\/metadata\/roleHeading","value":"Class"},{"op":"replace","path":"\/metadata\/title","value":"FSGenericURLResource"},{"op":"replace","path":"\/metadata\/symbolKind","value":"class"},{"op":"replace","path":"\/metadata\/fragments","value":[{"kind":"identifier","text":"FSGenericURLResource"}]},{"op":"replace","path":"\/metadata\/navigatorTitle","value":[{"kind":"identifier","text":"FSGenericURLResource"}]},{"op":"replace","path":"\/hierarchy","value":{"paths":[["doc:\/\/com.apple.documentation\/documentation\/technologies","doc:\/\/FSKit\/documentation\/FSKit"]]}},{"op":"replace","path":"\/topicSections","value":[{"anchor":"Creating-a-generic-URL-resource","identifiers":["doc:\/\/FSKit\/documentation\/FSKit\/FSGenericURLResource\/init(url:)-2cmhi"],"title":"Creating a generic URL resource"},{"anchor":"Accessing-resource-properties","identifiers":["doc:\/\/FSKit\/documentation\/FSKit\/FSGenericURLResource\/url"],"title":"Accessing resource properties"}]},{"op":"replace","path":"\/relationshipsSections","value":[{"identifiers":["doc:\/\/FSKit\/documentation\/FSKit\/FSResource"],"kind":"relationships","title":"Inherits From","type":"inheritsFrom"}]},{"op":"replace","path":"\/seeAlsoSections","value":[{"anchor":"Resources","generated":true,"identifiers":["doc:\/\/FSKit\/documentation\/FSKit\/FSResource","doc:\/\/FSKit\/documentation\/FSKit\/FSBlockDeviceResource","doc:\/\/FSKit\/documentation\/FSKit\/FSPathURLResource"],"title":"Resources"}]},{"op":"replace","path":"\/primaryContentSections\/0","value":{"declarations":[{"languages":["occ"],"platforms":["macOS"],"tokens":[{"kind":"keyword","text":"@interface"},{"kind":"text","text":" "},{"kind":"identifier","text":"FSGenericURLResource"},{"kind":"text","text":" : "},{"identifier":"doc:\/\/FSKit\/documentation\/FSKit\/FSResource","kind":"typeIdentifier","preciseIdentifier":"c:objc(cs)FSResource","text":"FSResource"}]}],"kind":"declarations"}},{"op":"replace","path":"\/references\/doc:~1~1FSKit~1documentation~1FSKit~1FSBlockDeviceResource\/title","value":"FSBlockDeviceResource"},{"op":"replace","path":"\/references\/doc:~1~1FSKit~1documentation~1FSKit~1FSBlockDeviceResource\/fragments","value":[{"kind":"identifier","text":"FSBlockDeviceResource"}]},{"op":"replace","path":"\/references\/doc:~1~1FSKit~1documentation~1FSKit~1FSBlockDeviceResource\/navigatorTitle","value":[{"kind":"identifier","text":"FSBlockDeviceResource"}]},{"op":"replace","path":"\/references\/doc:~1~1FSKit~1documentation~1FSKit~1FSGenericURLResource\/title","value":"FSGenericURLResource"},{"op":"replace","path":"\/references\/doc:~1~1FSKit~1documentation~1FSKit~1FSGenericURLResource\/fragments","value":[{"kind":"identifier","text":"FSGenericURLResource"}]},{"op":"replace","path":"\/references\/doc:~1~1FSKit~1documentation~1FSKit~1FSGenericURLResource\/navigatorTitle","value":[{"kind":"identifier","text":"FSGenericURLResource"}]},{"op":"replace","path":"\/references\/doc:~1~1FSKit~1documentation~1FSKit~1FSGenericURLResource~1init(url:)-2cmhi\/title","value":"initWithURL:"},{"op":"replace","path":"\/references\/doc:~1~1FSKit~1documentation~1FSKit~1FSGenericURLResource~1init(url:)-2cmhi\/fragments","value":[{"kind":"text","text":"- "},{"kind":"identifier","text":"initWithURL:"}]},{"op":"replace","path":"\/references\/doc:~1~1FSKit~1documentation~1FSKit~1FSGenericURLResource~1url\/title","value":"url"},{"op":"replace","path":"\/references\/doc:~1~1FSKit~1documentation~1FSKit~1FSGenericURLResource~1url\/fragments","value":[{"kind":"identifier","text":"url"}]},{"op":"replace","path":"\/references\/doc:~1~1FSKit~1documentation~1FSKit~1FSPathURLResource\/title","value":"FSPathURLResource"},{"op":"replace","path":"\/references\/doc:~1~1FSKit~1documentation~1FSKit~1FSPathURLResource\/fragments","value":[{"kind":"identifier","text":"FSPathURLResource"}]},{"op":"replace","path":"\/references\/doc:~1~1FSKit~1documentation~1FSKit~1FSPathURLResource\/navigatorTitle","value":[{"kind":"identifier","text":"FSPathURLResource"}]},{"op":"replace","path":"\/references\/doc:~1~1FSKit~1documentation~1FSKit~1FSResource\/title","value":"FSResource"},{"op":"replace","path":"\/references\/doc:~1~1FSKit~1documentation~1FSKit~1FSResource\/fragments","value":[{"kind":"identifier","text":"FSResource"}]},{"op":"replace","path":"\/references\/doc:~1~1FSKit~1documentation~1FSKit~1FSResource\/navigatorTitle","value":[{"kind":"identifier","text":"FSResource"}]},{"op":"replace","path":"\/references\/doc:~1~1com.apple.documentation~1documentation~1Foundation~1NSCoding\/fragments","value":[{"kind":"identifier","text":"NSCoding"}]},{"op":"replace","path":"\/references\/doc:~1~1com.apple.documentation~1documentation~1Foundation~1NSSecureCoding\/fragments","value":[{"kind":"identifier","text":"NSSecureCoding"}]},{"op":"replace","path":"\/references\/doc:~1~1com.apple.documentation~1documentation~1ObjectiveC~1NSObjectProtocol\/title","value":"NSObject"},{"op":"replace","path":"\/references\/doc:~1~1com.apple.documentation~1documentation~1ObjectiveC~1NSObjectProtocol\/fragments","value":[{"kind":"identifier","text":"NSObject"}]},{"op":"replace","path":"\/references\/doc:~1~1com.apple.documentation~1documentation~1ObjectiveC~1NSObjectProtocol\/navigatorTitle","value":[{"kind":"identifier","text":"NSObject"}]}],"traits":[{"interfaceLanguage":"occ"}]}]}