On 22 Oct 2013, at 7:37pm, Igor Korot <ikoro...@gmail.com> wrote:

> On Tue, Oct 22, 2013 at 2:29 AM, Simon Slavin <slav...@bigfraud.org> wrote:
> 
>> On 22 Oct 2013, at 9:17am, Igor Korot <ikoro...@gmail.com> wrote:
>> 
>>> Now I am trying to add the "sqlite3.c" but I couldn't.
>>> Going to "File"->"Add Files to,,," I see only my .cpp, .h and sqlite3.h
>>> files. I don't see sqlite3.c file in the "Add File" dialog.
>>> 
>>> Is there any setting I need to turn in order to be able to do so?
>> 
>> Drag your .c and .h files directly from the Finder into some part of the
>> project structure window on the left of the Xcode layout.  There's usually
>> a section called something like 'Other source' or something like that,
>> though theoretically they can go anywhere.
> 
> OK. That's easy.
> 
>> Once you've done that, look at the properties for those files and make
>> sure that Xcode knows that the  .c file is C, not C++.
> 
> And this is not. ;-)
> How do I check the properties of this file? Right click on it?

Did you try right-clicking on it ?  Or left-clicking on it ?

> And what do
> I check?
> I am very new to XCode, so I need to get this from very basic.

Click on it to select it, then look at the right-most pane on the window (you 
should have three: left, middle and right) and try to understand everything you 
see there.  Click on the popups, see what the alternatives are and try to pick 
the right one.  For these files you're actually looking for a popup that says 
'Type' and you want it to mention C, not C++.

Xcode is extremely complicated.  Possibly too complicated.  It's far too big 
for me to explain it here.  But you are definitely going to have to learn how 
to do these things in order to do any good at all.  Take a look at the 
documentation for 'Navigation area' in

<https://developer.apple.com/library/mac/recipes/xcode_help-general/_index.html>

If you are new to Xcode t may be worth going through an Xcode tutorial like

<https://developer.apple.com/library/mac/referencelibrary/GettingStarted/RoadMapOSX/books/RM_YourFirstApp_Mac/Articles/GettingStarted.html>

which will at least teach you what the various parts of the GUI are for and 
give you a hint where to look for things.

> Well, I did it this way to put the icon file in and though assumed that the
> process will work for SQLite DB file. Guess I was wrong.
> And here again - how do I check that this file is marked? Where to go and
> what to look for?

Again, find the database in the navigation area and see what its properties 
are.  You need to check that 'Target Membership' is ticked for the application 
you're building.

>> From the way you asked the question I assume that your application will
>> only need to read from that database, not change it.  That's fine.  OS X
>> may be a little alarmed at an application which tries to change the
>> contents of its own bundle.
> 
> If you mean "change the structure of the tables" - yes. The DB is created
> and the tables will not be changed.

No, I include changing the contents of the tables too.  Anything that edits the 
file.  And you would seem to have a problem: if your application is stored in 
the normal place, and a non-administration user runs it, it cannot edit itself. 
 You'll get an error message of some kind.

Including a file in your application and allowing users to change the contents 
of that file will not work for most Mac users in most situations.  First, only 
Administration account users have enough privileges to change applications in 
/Applications, and most users should only be using Administration privileges 
for doing Administration tasks.  Second, having an application edit 
applications (even itself !) is the typical behaviour of a virus and parts of 
the operating system will conspire to prevent it and alarm the user.  It is 
because of precautions like this that viruses are not a problem for Mac users.

So how do you do what you want to do ?  Well, you store a 'starter' copy of the 
database in your application.  Which is exactly what you're doing already.  But 
instead of having your application try to edit that one it should being trying 
to find a copy of it in the folder

~/Library/Application Support/Appname

If one doesn't exist, it should make one but copying the 'starter' one out of 
its own bundle.  Then it should open that copy.  That way, each of your users 
will have their own copy of the data and you can have many users on one Mac 
without worrying that they will interfere with one-another.

Read this, about what I wrote above:

<https://developer.apple.com/library/ios/documentation/FileManagement/Conceptual/FileSystemProgrammingGuide/Introduction/Introduction.html#//apple_ref/doc/uid/TP40010672-CH1-SW1>

You want the section

Accessing Files and Directories
    Locating Items in the File System
        Locating Items in the Standard Directories

and you should probably end up using the 'URLsForDirectory:inDomains:' 
function, like listing 2-1 on that page.

And lastly: All this is very complicated.  Sorry.  But doing things this way 
makes sure your app behaves in the standard OS X way, isn't subject to viruses, 
and acts exactly the way Mac users expect apps to behavie.

Simon.


_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to