рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рд╕рд╛рде рдЗрдВрдЯрд░реИрдХреНрдЯ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХрд┐рд╕реА рднреА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддреЗ рд╕рдордп рдпрд╣ рд╡рд┐рд╖рдп рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдпрд╣рд╛рдВ, рд╕рд┐рд╕реНрдЯрдо рдХреНрд╖рдорддрд╛рдУрдВ рдХрд╛ рд╕рдХреНрд╖рдо рдЙрдкрдпреЛрдЧ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдмрд╛рддрдЪреАрдд рдореЗрдВ рдХрд╛рдлреА рд╕реБрдзрд╛рд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИредNSURLCache
рд░реИрдо рдпрд╛ рдбрд┐рд╕реНрдХ рдкрд░ рдиреЗрдЯрд╡рд░реНрдХ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдХреИрд╢рд┐рдВрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реНрдпрд╛рдкрдХ рд╕рдорд╛рдзрд╛рди рд╣реИред
Apple рдХреЗ рдкреНрд░рд▓реЗрдЦрди рдХреЗ рдЕрдиреБрд╕рд╛рд░,
NSURLConnection
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХрд┐рд╕реА рднреА рдЕрдиреБрд░реЛрдз рдХреЛ
NSURLCache
рдорд╛рдзреНрдпрдо рд╕реЗ "рдкрд╛рд░рд┐рдд" рдХрд┐рдпрд╛
NSURLCache
ред
рдХреИрд╢рд┐рдВрдЧ рдиреЗрдЯрд╡рд░реНрдХ рдХреЛ рдЖрд╡рд╢реНрдпрдХ рдХреЙрд▓ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХрдо рдХрд░ рджреЗрддрд╛ рд╣реИ, рдЗрдВрдЯрд░рдиреЗрдЯ рдХреА рдкреВрд░реНрдг рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рджреМрд░рд╛рди рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдзрд╛рд░рдгрд╛ рдореЗрдВ рд╕реБрдзрд╛рд░ рдпрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдХрдиреЗрдХреНрд╢рди рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдПрдВред
рд╕рд░реНрд╡рд░ рд░рд┐рд╕реНрдкреЙрдиреНрд╕ рдбрд╛рдЙрдирд▓реЛрдб рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдЗрд╕рдХреА рдПрдХ рдХреЙрдкреА рд▓реЛрдХрд▓ рдХреИрд╢ рдореЗрдВ рд╕реЗрд╡ рд╣реЛ рдЬрд╛рддреА рд╣реИред рдЕрдЧрд▓реА рдмрд╛рд░ рдЬрдм рдЖрдк рдПрдХ рд╣реА рдЕрдиреБрд░реЛрдз рднреЗрдЬрддреЗ рд╣реИрдВ, рддреЛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд┐рдП рдмрд┐рдирд╛, рддреБрд░рдВрдд рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдЧреАред
NSURLCache
рдкрд╛рд░рджрд░реНрд╢реА рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдХреИрд╢реНрдб рдбреЗрдЯрд╛ рд▓реМрдЯрд╛рдПрдЧрд╛ред
NSURLCache
рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
NSURLCache
рдЖрдкрдХреЛ
sharedURLCache
рдкрд░
sharedURLCache
рдорд╛рди рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА
sharedURLCache
ред рдпрд╣
application:didFinishLaunchingWithOptions:
рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
application:didFinishLaunchingWithOptions:
iOS рдкрд░ рдпрд╛
applicationDidFinishLaunching:
рдореЗрдВ рд╡рд┐рдзрд┐
application:didFinishLaunchingWithOptions:
applicationDidFinishLaunching:
- Mac OS X рдкрд░:
-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { NSURLCache *URLCache = [[NSURLCache alloc] initWithMemoryCapacity:4 * 1024 * 1024 diskCapacity:20 * 1024 * 1024 diskPath:nil]; [NSURLCache setSharedURLCache:URLCache]; }
рдЖрдк рдХреИрд╢ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ - рдХреНрд▓рд╛рдЗрдВрдЯ рд╕рд╛рдЗрдб рдФрд░ рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб рджреЛрдиреЛрдВ рдкрд░ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХрд╛ рдПрдХ рдмреБрджреНрдзрд┐рдорд╛рди рд╡рд┐рдХрд▓реНрдк рдЖрдкрдХреЗ рдЖрд╡реЗрджрди рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
NSURLRequestCachePolicy
рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рдЕрдиреБрд░реЛрдз рдкрд░, рдХреИрд╢ рдкреЙрд▓рд┐рд╕реА
cachePolicy
рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА
cachePolicy
рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реЗрдЯ рдХреА рдЧрдИ рд╣реИред рдЖрдк рдирд┐рдореНрди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдЪреБрди рд╕рдХрддреЗ рд╣реИрдВ:
NSURLRequestUseProtocolCachePolicy
- рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рдиред рдХреИрд╢рд┐рдВрдЧ рд▓реЙрдЬрд┐рдХ рдЕрдиреБрд░реЛрдз рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдиреЗрдЯрд╡рд░реНрдХ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╣реЛрддрд╛ рд╣реИредNSURLRequestReloadIgnoringLocalCacheData
- рдбреЗрдЯрд╛ рд╣рдореЗрд╢рд╛ рд╕рд░реНрд╡рд░ рд╕реЗ рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХреИрд╢ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдирджреЗрдЦрд╛ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИредNSURLRequestReloadIgnoringLocalAndRemoteCacheData
- рд╕реНрдерд╛рдиреАрдп рдХреИрд╢ рдХреА рд╕рд╛рдордЧреНрд░рд┐рдпреЛрдВ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкреНрд░реЙрдХреНрд╕реА рд╕рд░реНрд╡рд░ рдФрд░ рдЕрдиреНрдп рдордзреНрдпрд╡рд░реНрддреА рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдХреЛ рдирд┐рд░реНрджреЗрд╢ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдпрджрд┐ рд╕рдВрднрд╡ рд╣реЛ рддреЛ рдбреЗрдЯрд╛ рдХреА рдХреИрд╢реНрдб рдХреЙрдкреА рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВредNSURLRequestReturnCacheDataElseLoad
- рдЬрд╛рдирдХрд╛рд░реА рдХреИрд╢ рд╕реЗ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рддреА рд╣реИ, рдЬрдмрдХрд┐ рдЗрд╕рдХреА рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдзреНрдпрд╛рди рдирд╣реАрдВ рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдХреИрд╢ рдореЗрдВ рдХреЛрдИ рдбреЗрдЯрд╛ рдирд╣реАрдВ рд╣реИ, рддреЛ рд╡реЗ рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗ рд▓реЛрдб рдХрд┐рдП рдЧрдП рд╣реИрдВредNSURLRequestReturnCacheDataDontLoad
- рдбреЗрдЯрд╛ рдХреЛ рдХреИрд╢ рд╕реЗ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрдирдХреЗ рдЕрдкреНрд░рдЪрд▓рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрдЧрд░ рдХреЛрдИ рд╕рдВрдЧреНрд░рд╣реАрдд рдЬрд╛рдирдХрд╛рд░реА рдирд╣реАрдВ рд╣реИ, рддреЛ рдЕрдиреБрд░реЛрдз рдХреЛ рддреБрд░рдВрдд рд╕рд░реНрд╡рд░ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд┐рдП рдмрд┐рдирд╛ рдкрд╛рд░рд┐рдд рдирд╣реАрдВ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИредNSURLRequestReloadRevalidatingCacheData
- рд╕рд░реНрд╡рд░ рджреНрд╡рд╛рд░рд╛ рдЗрд╕рдХреА рд╡реИрдзрддрд╛ рдХреА рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдкреБрд╖реНрдЯрд┐ рдХреЗ рдмрд╛рдж рд╣реА рдХреИрд╢реНрдб рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдбреЗрдЯрд╛ рдЬреЛ рдЕрдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реЛ рдЧрдпрд╛ рд╣реИ рдЙрд╕реЗ рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗ рдмрд╛рд╣рд░ рдкрдВрдк рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЗрди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рдмреАрдЪ рдХреЗ рдЕрдВрддрд░ рд╣рдореЗрд╢рд╛ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рдЕрдХреНрд╕рд░ рднреНрд░рдо рдХреА рд╕реНрдерд┐рддрд┐ рдкреИрджрд╛ рдХрд░рддреЗ рд╣реИрдВред рди
рд╣реА рдпрд╣ рд╕реНрдкрд╖реНрдЯрддрд╛ рдЬреЛрдбрд╝рддрд╛ рд╣реИ рдХрд┐
NSURLRequestReloadIgnoringLocalAndRemoteCacheData
рдФрд░
NSURLRequestReloadRevalidatingCacheData
рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ
рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдП рдЧрдП рд╣реИрдВред
NSURLRequestCachePolicy
рдмрд╛рд░реЗ рдореЗрдВ рдЖрдкрдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рдЬрд╛рдирдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ:
UseProtocolCachePolicy
- рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡реНрдпрд╡рд╣рд╛рд░ReloadIgnoringLocalCacheData
- рдХреИрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВReloadIgnoringLocalAndRemoteCacheData
- рдХреИрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВред рд╕рдмReturnCacheDataElseLoad
- рдХреИрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдЗрд╕рдХреА рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкрд░ рдзреНрдпрд╛рди рди рджреЗрдВReturnCacheDataDontLoad
- рдСрдлрд╝рд▓рд╛рдЗрди рдореЛрдбред рдЗрд╕рдХреА "рддрд╛рдЬрдЧреА" рдХреА рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛, рдХреЗрд╡рд▓ рдХреИрд╢реНрдб рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВReloadRevalidatingCacheData
- рд╕рд░реНрд╡рд░ рд╕реЗ рдпрд╣ рдкреВрдЫрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдХреИрд╢ рдХрд┐рддрдирд╛ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реИ
HTTP рдХреИрд╢рд┐рдВрдЧ
рдЪреВрдВрдХрд┐
NSURLConnection
рд╡рд░реНрдЧ
NSURLConnection
рд╡рд┐рднрд┐рдиреНрди рдиреЗрдЯрд╡рд░реНрдХ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ (FTP рдФрд░ HTTP / HTTPS рд╕рд╣рд┐рдд) рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХреИрд╢рд┐рдВрдЧ рдХреЛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рдкреНрд░реЛрдЯреЛрдХреЙрд▓-рд╕реНрд╡рддрдВрддреНрд░ рддрд░реАрдХреЗ рд╕реЗ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рд╣рдо рдЗрд╕реЗ HTTP рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗред
HTTP рдореЗрдВ, рд╕рд░реНрд╡рд░ рдЕрдиреБрд░реЛрдзреЛрдВ рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ
рд╣реЗрдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ, рдорд╛рдЗрдо рдкреНрд░рдХрд╛рд░, рдХреИрд╢рд┐рдВрдЧ, рдЖрджрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореЗрдЯрд╛-рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЕрдиреБрд░реЛрдз рд╣реЗрдб
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ,
NSURLRequest
рд╡рд░реНрддрдорд╛рди рд╕рдордп рдХрд╛ рдЙрдкрдпреЛрдЧ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреИрд╢реНрдб рдЬрд╛рдирдХрд╛рд░реА рд╡рд╛рдкрд╕ рдХрд░рдиреА рд╣реИ рдпрд╛ рдирд╣реАрдВред рдмреЗрд╣рддрд░ рдЯреНрдпреВрдирд┐рдВрдЧ рдХреЗ рд▓рд┐рдП, рдЖрдк рдирд┐рдореНрди рд╣реЗрдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
If-Modified-Since
- рдпрд╣ рд╣реЗрдбрд░ рд╕рд░реНрд╡рд░ рд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ Last-Modified
рд╣реЗрдбрд░ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдорд╛рди рдЕрдВрддрд┐рдо рдХреЙрд▓ рд╕реЗ Last-Modified
рдЗрд╕ рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПредIf-None-Match
- рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ Etag
рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИред рдпрд╣рд╛рдВ рдЖрдкрдХреЛ рдкрд┐рдЫрд▓реЗ рдкреНрд░рд╛рдкреНрдд Etag
рдорд╛рди рдХреЛ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рд░рд┐рд╕реНрдкрд╛рдВрд╕ рд╣реЗрдбрд░
NSHTTPURLResponse
рд╕рд╛рде, рдХреИрд╢рд┐рдВрдЧ рд╣реЗрдбрд░ рднреА рд▓реМрдЯрд╛рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ:
Cache-Control
- рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ HTTP рдХреИрд╢рд┐рдВрдЧ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рд╢реАрд░реНрд╖ рд▓реЗрдЦ рдореМрдЬреВрдж рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рдХреЗ рдореВрд▓реНрдп рдореЗрдВ рдХреИрд╢ рдореЗрдВ рдбреЗрдЯрд╛ рд╕реНрдЯреЛрд░реЗрдЬ рдХреА рдЕрд╡рдзрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд╣реЛ рд╕рдХрддреА рд╣реИ, рд╕рд╛рде рд╣реА рдЙрди рддрдХ рдкрд╣реБрдВрдЪ рдХрд╛ рд╕реНрддрд░ рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╡рд┐рд╕реНрддреГрдд рдЬрд╛рдирдХрд╛рд░реА рдпрд╣рд╛рдБ рдЙрдкрд▓рдмреНрдз рд╣реИ ред
Cache-Control
рдЕрд▓рд╛рд╡рд╛, рд╕рд░реНрд╡рд░ рд╕рд╢рд░реНрдд рд░реВрдк рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдЕрддрд┐рд░рд┐рдХреНрдд рд╣реЗрдбрд░ рднреЗрдЬ рд╕рдХрддрд╛ рд╣реИ (рдкрд┐рдЫрд▓реЗ рдЕрдиреБрднрд╛рдЧ рдХреЛ рджреЗрдЦреЗрдВ):
Last-Modified
- рдЕрдиреБрд░реЛрдзрд┐рдд рд╕рдВрд╕рд╛рдзрди рдХреЗ рдЕрдВрддрд┐рдо рдкрд░рд┐рд╡рд░реНрддрди рдХрд╛ рд╕рдордпред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХрд┐рд╕реА рдлреЛрдЯреЛ рдПрд▓реНрдмрдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╕рдордп, Last-Modified
рд╣реЗрдбрд░ рдХреЛ рдЕрдВрддрд┐рдо рдлреЛрдЯреЛ рдХреА рддрд╛рд░реАрдЦ рдХреЗ рдмрд░рд╛рдмрд░ рдореВрд▓реНрдп рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИредEtag
- рдЖрд╡рд╢реНрдпрдХ рд╡рд╕реНрддреБ рдХреА рд╕рд╛рдордЧреНрд░реА рдХрд╛ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ред рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ, рдпрд╣ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рдВрд╕рд╛рдзрди рдХреА рд╕реНрдерд┐рддрд┐ рдХрд╛ MD5 рд╣реИрд╢ ред рдпрд╣ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реИ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП Last-Modified
рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд рд╣реИред
NSURLConnectionDelegate
рдЕрдиреБрд░реЛрдз рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддреЗ рд╕рдордп,
NSURLConnection
рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдХреЗ рдкрд╛рд╕
connection:willCacheResponse:
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреИрд╢реНрдб рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реЛрддреА рд╣реИ
connection:willCacheResponse:
рд╡рд┐рдзрд┐ред рдЗрд╕ рдХреЙрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ
NSCachedURLResponse
рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ
NSURLResponse
рдореЗрдВ рд╕реНрд░реЛрдд
NSURLResponse
рдФрд░ рдХреИрд╢реНрдб рдбреЗрдЯрд╛ рдХрд╛ рд╕рдВрджрд░реНрдн рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рдСрдмреНрдЬреЗрдХреНрдЯ рдиреЗрдЯрд╡рд░реНрдХ рдХрдиреЗрдХреНрд╢рди рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЪреВрдВрдХрд┐ рдЖрдк рдХрд┐рд╕реА рднреА рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
NSCachedURLResponse
рд╡рд░реНрдЧ рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ
NSCachedURLResponse
initWithResponse:data:userInfo:storagePolicy:
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдирдИ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
initWithResponse:data:userInfo:storagePolicy:
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
-(NSCachedURLResponse *)connection:(NSURLConnection *)connection willCacheResponse:(NSCachedURLResponse *)cachedResponse { NSMutableDictionary *mutableUserInfo = [[cachedResponse userInfo] mutableCopy]; NSMutableData *mutableData = [[cachedResponse data] mutableCopy]; NSURLCacheStoragePolicy storagePolicy = NSURLCacheStorageAllowedInMemoryOnly;
рдпрджрд┐
connection:willCacheResponse:
рд╡рд┐рдзрд┐ рд░рд┐рдЯрд░реНрди
nil
, рддреЛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдХреИрд╢ рдирд╣реАрдВ рд╣реЛрдЧреАред
- (NSCachedURLResponse *)connection:(NSURLConnection *)connection willCacheResponse:(NSCachedURLResponse *)cachedResponse { return nil; }
connection:willCacheResponse:
рд╡рд┐рдзрд┐ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реИред рдпрджрд┐ рдЗрд╕реЗ рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдореЗрдВ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ
NSCachedURLResponse
рдХреА рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдирд┐рд░реНрдорд┐рдд рдЖрд╡реГрддреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдиреБрдХрд╕рд╛рди
NSURLCache
рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдХрдИ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВ:
рдирд┐рд╖реНрдХрд░реНрд╖
NSURLCache
рдЙрджрд╛рд╣рд░рдг рдПрдХ рдмрд╛рд░ рдлрд┐рд░ рд╣рдореЗрдВ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╕рд┐рд╕реНрдЯрдо рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХреЛ рдЬрд╛рдирдирд╛ рдХрд┐рддрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред
рдХрдИ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреИрд╢рд┐рдВрдЧ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреА рдмрд╛рдЗрдХ рдХрд╛ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЙрдиреНрд╣реЗрдВ
NSURLCache
рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдЖрд░рдВрдн рдореЗрдВ рдХреЛрдб рдХреА рдХреЗрд╡рд▓ 2 рд▓рд╛рдЗрдиреЗрдВ рд▓рдЧрддреА рд╣реИрдВ рдФрд░ рдХрд╛рдо рдХреЛ 100 рдЧреБрдирд╛ рдЕрдзрд┐рдХ рдХреБрд╢рд▓ рдмрдирд╛рддрд╛ рд╣реИред рдФрд░ рднреА рдиреЗрдЯрд╡рд░реНрдХ рдХреИрд╢рд┐рдВрдЧ рдХреЗ рд▓рд╛рднреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╕реЛрдЪрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдЕрдкрдиреЗ рд╕рд░реНрд╡рд░ рдХреЛ рднрд╛рд░реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд╕рд╛рде рд▓реЛрдб рдХрд░ рд░рд╣реЗ рд╣реИрдВред
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдХреЗ рдЗрд╖реНрдЯрддрдо рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд▓рд┐рдП, рд╣рдореЗрд╢рд╛
application:didFinishLaunchingWithOptions:
рдореЗрдВ
NSURLCache
рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░реЗрдВ
application:didFinishLaunchingWithOptions:
рд╡рд┐рдзрд┐ред