|
|||||||
| Development XCode, Cocoa, and all other development |
![]() |
|
|
LinkBack | Thread Tools | Search this Thread |
| 06-17-2009 | #1 (permalink) |
|
Operator
Join Date: Jun 2009
Posts: 1
![]() |
Hi everyone,
i am new Mac and iphone SDK. i writing basicly a game application. and i want to update and show game score using SQLite. i searched in web for my problem but i didnt find any solution for me. error is: Ld /Users/Iphone/Desktop/IDRGame/build/Debug-iphonesimulator/IDRGame.app/IDRGame normal i386 cd /Users/Iphone/Desktop/IDRGame setenv MACOSX_DEPLOYMENT_TARGET 10.5 setenv PATH "/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin" /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc-4.0 -arch i386 -isysroot /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator2.2.1.sdk -L/Users/Iphone/Desktop/IDRGame/build/Debug-iphonesimulator -L/Users/Iphone/Desktop/IDRGame -L/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator2.2.1.sdk/System/Library/Frameworks/QuartzCore.framework -F/Users/Iphone/Desktop/IDRGame/build/Debug-iphonesimulator -F/Users/Iphone/Desktop/IDRGame -filelist /Users/Iphone/Desktop/IDRGame/build/IDRGame.build/Debug-iphonesimulator/IDRGame.build/Objects-normal/i386/IDRGame.LinkFileList -mmacosx-version-min=10.5 -framework Foundation -framework UIKit -framework CoreGraphics -framework AudioToolbox -lsqlite3.0 -o /Users/Iphone/Desktop/IDRGame/build/Debug-iphonesimulator/IDRGame.app/IDRGame Undefined symbols: ".objc_class_name_ScoreDB", referenced from: literal-pointer@__OBJC@__cls_refs@ScoreDB in IDRGameAppDelegate.o literal-pointer@__OBJC@__cls_refs@ScoreDB in InterclockView.o ld: symbol(s) not found collect2: ld returned 1 exit status i have ScoreDB.h and ScoreDB.m files for SQLite. ScoreDB.h File // // ScoreDB.h // SQLiteTutorial // // Created by Iphone App on 6/11/09. // Copyright 2009 __MyCompanyName__. All rights reserved. // #import <UIKit/UIKit.h> #import <sqlite3.h> @interface ScoreDB : NSObject { NSInteger *game_id; NSString *name; NSString *score; BOOL hydrated; BOOL dirty; } @property (nonatomic, readonly) NSInteger *game_id; @property (nonatomic, copy) NSString *name; @property (nonatomic, copy) NSString *score; @property (nonatomic, readwrite) BOOL dirty; @property (nonatomic, readwrite) BOOL hydrated; - (id)initWithPrimaryKey NSInteger)pk;-(void)UpdateDatabase; -(void)SelectDatabase; + (void) finalizeStatements; @end and ScoreDB.m #import "ScoreDB.h" static sqlite3 *database = nil; static sqlite3_stmt *insert_statement = nil; static sqlite3_stmt *init_statement = nil; static sqlite3_stmt *delete_statement = nil; static sqlite3_stmt *hydrate_statement = nil; static sqlite3_stmt *dehydrate_statement = nil; static sqlite3_stmt *update_statement = nil; @implementation ScoreDB @synthesize game_id,name,score,dirty,hydrated; - (id)initWithPrimaryKey NSInteger)pk{[super init]; game_id = pk; return self; } // Finalize (delete) all of the SQLite compiled queries. + (void)finalizeStatements { if (database) sqlite3_close(database); if (insert_statement) { sqlite3_finalize(insert_statement); insert_statement = nil; } if (init_statement) { sqlite3_finalize(init_statement); init_statement = nil; } if (delete_statement) { sqlite3_finalize(delete_statement); delete_statement = nil; } if (hydrate_statement) { sqlite3_finalize(hydrate_statement); hydrate_statement = nil; } if (dehydrate_statement) { sqlite3_finalize(dehydrate_statement); dehydrate_statement = nil; } if (update_statement) { sqlite3_finalize(update_statement); update_statement = nil; } } -(void)UpdateDatabase { delegate:self cancelButtonTitle:@"OK" otherButtonTitles: nil]; [alert show]; if(update_statement == nil) { const char *sql = "UPDATE game Set score = ? Where name = ?"; if(sqlite3_prepare_v2(database, sql, -1, &updateStmt, NULL) != SQLITE_OK) NSAssert1(0, @"Error while creating update statement. '%s'", sqlite3_errmsg(database)); } sqlite3_bind_text(update_statement, 1, [name UTF8String], -1, SQLITE_TRANSIENT); sqlite3_bind_text(update_statement, 2, [score UTF8String], -1, SQLITE_TRANSIENT); // sqlite3_bind_int(update_statement, 3, coffeeID); if(SQLITE_DONE != sqlite3_step(update_statement)) NSAssert1(0, @"Error while updating. '%s'", sqlite3_errmsg(database)); sqlite3_reset(update_statement); //Reclaim all memory here. [score release]; score = nil; [name release]; name = nil; } -(void)SelectDatabase { } - (void) setGameName NSString *)newValue {[name release]; name = [newValue copy]; } - (void) setGameScore NSString *)newValue {[score release]; score = [newNumber copy]; } - (void)dealloc { [name release]; [score release]; [super dealloc]; } @end and i am using that codes IDRGameAppDelegate *appDelegate = (IDRGameAppDelegate *)[[UIApplication sharedApplication] delegate]; ScoreDB *dbObj = [[ScoreDB alloc] initWithPrimaryKey:0]; dbObj.name = @"reflex"; dbObj.score = @"0.345"; [appDelegate updateScore:dbObj]; when i close this line : ScoreDB *dbObj = [[ScoreDB alloc] initWithPrimaryKey:0]; error is gone. what is problem i dont understand. please help me. my frameworks : - libsqlite3.0.dylib - AudioToolbox.framework - UIkit.framework - Foundation.framework - CoreGraphics.framework. i hope u can help me. Thanks everyone. |
|
|
|
![]() |
| Bookmarks |
| Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
| Thread Tools | Search this Thread |
|
|