I'm completely new to `Objective C` and I'm trying to use it to wrap a `C-library`. I have a `main.m` `wrap.m` and `wrap.h` files. From what I gather in the header file I included `@interface` and in the source file I will include `@implementation` However I'm not really understanding what to include in each of them. Right now my main file is: 

```
int copy_data(struct archive *ar, struct archive *aw) {

    for (;;) {
        const void *buff;
        size_t size;
        off_t offset;

        int r = archive_read_data_block(ar, &buff, &size, &offset);
        if (r == ARCHIVE_EOF)
            return (ARCHIVE_OK);

        archive_write_data_block(aw, buff, size, offset);
    }
}

int main(int argc, const char * argv[])
{

    @autoreleasepool {

        struct archive *a;
        struct archive *ext;
        struct archive_entry *entry;
        int flags;
        int r;

        /* Select which attributes we want to restore. */
        flags = ARCHIVE_EXTRACT_TIME;
        flags |= ARCHIVE_EXTRACT_PERM;
        flags |= ARCHIVE_EXTRACT_ACL;
        flags |= ARCHIVE_EXTRACT_FFLAGS;

        a = archive_read_new();
        archive_read_support_format_all(a);
        archive_read_support_compression_all(a);
        ext = archive_write_disk_new();
        archive_write_disk_set_options(ext, flags);
        archive_write_disk_set_standard_lookup(ext);
        r = archive_read_open_filename(a, argv[1], 10240);

        for (;;) {
            r = archive_read_next_header(a, &entry);
            if (r == ARCHIVE_EOF)
                break;

            r = archive_write_header(ext, entry);
            if (archive_entry_size(entry) > 0) {
                copy_data(a, ext);
            }

            archive_write_finish_entry(ext);
        }
        archive_read_close(a);
        archive_read_free(a);
        archive_write_close(ext);
        archive_write_free(ext);
        NSLog(@"No Issues");

    }
    return 0;
}

```

So far what I'm getting in my `wrap.h` file is: 

```
typedef struct{
int *a;
int *ext;

}archive;

@interface main : NSObject

@property int flags;
@property int r;

```

I don't know if that is close to what I need to do, and I'm getting errors on my `ARCHIVE_EXTRACT` saying they are undeclared identifiers which I assume also have to go into my `wrap.h` file but I'm not sure how to do that. Any help at all would be appreciated!