IOS рдХреЗ рд▓рд┐рдП SQLite рдореЗрдВ рдкреВрд░реНрдг рдпреВрдирд┐рдХреЛрдб рд╕рдорд░реНрдердиред рдЖрд╡реЗрджрди рдЙрджрд╛рд╣рд░рдг

рдирдорд╕реНрддреЗ рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВ iOS рдХреЗ рд▓рд┐рдП рд╕рд░рд▓рддрдо рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдФрд░ рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рд░реВрд╕реА (рдФрд░ рди рдХреЗрд╡рд▓) рд░реВрд╕реА рдХреЗ рд╕рд╣реА рд╕рдВрдЪрд╛рд▓рди рдХреЛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд╡рд┐рдзрд┐ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдЧрд╛, рдЬреИрд╕реЗ рдХрд┐ UPPER / LOWER, LIKE, рдпрд╛ ORDER BYред

рд╡рд░реНрдгрд┐рдд рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдУрдПрд╕ рдПрдХреНрд╕ рд▓реЙрдпрди 10.7.2 рдХреЗ рддрд╣рдд Xcode 4.2 рдореЗрдВ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддреЗ рд╕рдордп рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдиреАрдЪреЗ рдЪрд┐рддреНрд░реЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдмрд╣реБрдд рд╡рд┐рд╕реНрддреГрдд рдирд┐рд░реНрджреЗрд╢ рд╣реИред

рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП

рдЖрд╡рд╢реНрдпрдХ рдлрд╝рд╛рдЗрд▓реЗрдВ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

рдПрдХ рдирдпрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВ

Xcode рд▓реЙрдиреНрдЪ рдХрд░реЗрдВ, iOS рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рд╕рд╛рде рдПрдХ рдирдпрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВ - рд╕рд┐рдВрдЧрд▓ рд╡реНрдпреВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди, "рдЕрдЧрд▓рд╛" рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ:
рдЫрд╡рд┐

рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ рдирд╛рдо рджрд░реНрдЬ рдХрд░реЗрдВ, рд╕рднреА рдЪреЗрдХрдмреЙрдХреНрд╕ рдЕрдирдЪреЗрдХ рдХрд░реЗрдВ, "рдЕрдЧрд▓рд╛" рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ
рдЫрд╡рд┐

рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рд╕рд╣реЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВред рд╣реЛ рдЧрдпрд╛ред
рдЫрд╡рд┐

рдХрд┐рд╕реА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ SQLite рд╕рдкреЛрд░реНрдЯ рдЬреЛрдбрд╝рдирд╛

рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдиреЗрд╡рд┐рдЧреЗрдЯрд░ рдореЗрдВ рдмрд╛рдИрдВ рдУрд░, рд╣рдорд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рдЬрд╛рдирдХрд╛рд░реА рдФрд░ рдЧреБрдгреЛрдВ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкрджрд╛рдиреБрдХреНрд░рдо рдХреЗ рд╕рдмрд╕реЗ рдКрдкрд░реА рддрддреНрд╡ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ, рдиреАрдЪреЗ рд▓рдХреНрд╖реНрдп рдЬреЛрдбрд╝реЗрдВ рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ
рдЫрд╡рд┐

IOS рдлреНрд░реЗрдорд╡рд░реНрдХ рдФрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЪреБрдиреЗрдВ - рдХреЛрдХреЛ рдЯрдЪ рд╕реНрдЯреЗрдЯрд┐рдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА, рдЕрдЧрд▓рд╛ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ
рдЫрд╡рд┐

рднрд╡рд┐рд╖реНрдп рдХреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд▓рд┐рдП рдПрдХ рдирд╛рдо рджрд░реНрдЬ рдХрд░реЗрдВред рд╕рдорд╛рдкреНрдд рдХрд░реЗрдВред
рдЫрд╡рд┐

рд╣рдо рдЙрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд▓реЗрддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдордиреЗ рд▓реЗрдЦ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдерд╛ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдиреЗрд╡рд┐рдЧреЗрдЯрд░ рдореЗрдВ рдирдП рдмрдирд╛рдП рдЧрдП рд╕рдореВрд╣ (libsqliteunicode) рдореЗрдВ рдЦреАрдВрдЪреЗрдВред

рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рд╡рд╛рд▓реА рд╡рд┐рдВрдбреЛ рдореЗрдВ, рджреЛрдиреЛрдВ рд▓рдХреНрд╖реНрдпреЛрдВ (рд▓рдХреНрд╖реНрдпреЛрдВ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ) рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВред рд╕рдорд╛рдкреНрдд рдХрд░реЗрдВред
рдЫрд╡рд┐

рдлрд┐рд░ рд╕реЗ, рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЧреБрдг рдЦреЛрд▓реЗрдВ, рд▓рдХреНрд╖реНрдп рд╕реВрдЪреА рд╕реЗ рдирд┐рд░реНрдорд┐рдд libsqlunicode рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ, рдмрд┐рд▓реНрдб рдЪрд░рдгреЛрдВ рдЯреИрдм рдкрд░ рдЬрд╛рдПрдВ, "рд▓рд┐рдВрдХ рдмрд╛рдЗрдирд░реА рд╡рд┐рдж рд▓рд╛рдЗрдмреНрд░реЗрд░реАрдЬрд╝" рд╕реВрдЪреА рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░реЗрдВ рдФрд░ рдЗрд╕рд╕реЗ Foundation.framework рдирд┐рдХрд╛рд▓реЗрдВред
рдЫрд╡рд┐

рдмрд┐рд▓реНрдб рд╕реЗрдЯрд┐рдВрдЧ рдЯреИрдм рдкрд░ рдЬрд╛рдПрдВ рдФрд░ Preprocessor Macros рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рд╕реЗрдЯ рдХрд░реЗрдВ
SQLITE_CORE SQLITE_ENABLE_UNICODE
рдЫрд╡рд┐

рд▓рдХреНрд╖реНрдп рд╕реВрдЪреА рд╕реЗ, sqliteunicode рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ, рдирд┐рд░реНрдорд╛рдг рдЪрд░рдгреЛрдВ рдЯреИрдм рдкрд░ рдЬрд╛рдПрдВ, рд▓рдХреНрд╖реНрдп рдирд┐рд░реНрднрд░рддрд╛ рд╕реВрдЪреА рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░реЗрдВ рдФрд░ рдЗрд╕рдореЗрдВ рд╣рдорд╛рд░реА libsqliteunicode рдЬреЛрдбрд╝реЗрдВ
рдЫрд╡рд┐

рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВред

рдЗрд╕ рд╕рдм рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛рдиреБрд╕рд╛рд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЕрдкрдиреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдХрдВрдЯреНрд░реЛрд▓рд░ рдХреА рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЖрдкрдХреЛ рд▓рд╛рдЗрдиреЗрдВ рдЬреЛрдбрд╝рдиреА рдЪрд╛рд╣рд┐рдП
#import "sqlite3.h"
#import "sqlite3_unicode.h"

рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЖрдкрдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
sqlite3_unicode_load();

рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдЦрддреНрдо рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдореБрдлреНрдд рдореЗрдореЛрд░реА рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ
sqlite3_unicode_free();

рдмрд╛рдХреА рдХреЗ рд▓рд┐рдП рд╣рдо рдЕрдкрдиреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣ libsqlite3.dylib рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ

рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдФрд░ рдЦреЛрдЬ рдмрд╛рд░ рдФрд░ рдЦреЛрдЬ рдкреНрд░рджрд░реНрд╢рди рдирд┐рдпрдВрддреНрд░рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрд╕ рдкрд░ рдЦреЛрдЬ рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░реНрдп рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдЙрджрд╛рд╣рд░рдг рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдирд╛: рдбрд╛рдЙрдирд▓реЛрдб (4 рдПрдордмреА)

рдпреБрдкреАрдбреА:
SQLite рд╕рдорд╛рдореЗрд▓рди recompiling рдмрд┐рдирд╛ рд╡рд┐рдХрд▓реНрдк:


рд╕рдВрд╢реЛрдзрд┐рдд рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдЙрджрд╛рд╣рд░рдг: рдбрд╛рдЙрдирд▓реЛрдб (1.5 рдПрдордмреА)

рд╡реИрд╕реЗ, рдкрд╣рд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдкрд░рд┐рдгрд╛рдореА .app рдХрд╛ рдЖрдХрд╛рд░ 1 210 597 рдмрд╛рдЗрдЯреНрд╕ рд╣реИ
рджреВрд╕рд░реЗ рдореЗрдВ - 266 332

Source: https://habr.com/ru/post/In136135/


All Articles