데이터베이스를 다루기 위해 DB.m이라는 클래스 하나를 선언했습니다. 이제 막 시작해서 튜토리얼만 간신히 따라해보는 수준이네요
#import <Foundation/Foundation.h>
#import "BaaS/BaaS.h"
@interface DB : NSObject{
BFObject *obj;
BFQuery *q;
}
- (void) setProjectKey: (NSString *) key;
- (NSString*) getDataFrom: (NSString *) prim;
@end
@implementation DB
- (void) setProjectKey: (NSString *) key{
[BaaS setProjectKey:key];
}
- (NSString*) getDataFrom: (NSString *) prim{
NSError *error;
obj = [q getObjectWithId: @"579195990cf29ef17d40bcbd" error: &error];
if(error){
return @"error";
}
//return obj.tableName;
return obj[@"string"];
}
@end
테이블의 이름은 test이고, string과 number라는 칼럼이 각각 이름에 맞는 자료형으로 만들어져 있습니다. 저 오브젝트 아이디를 갖는 row에는 "1"과 1이 들어 있고요. 아래는 ViewController 클래스의 viewDidLoad() 메소드에 작성한 코드입니다.
예상하는 것이 맞다면, 프로젝트에서 오브젝트 아이디에 맞는 row를 찾아 string칼럼에 든 값을 반환받아야 하는데 print()메소드에서 자꾸 nil만 나옵니다. .m파일 안의 반환문을 obj.tableName을 반환하게 해 봐도 마찬가지입니다. 어디에서 잘못된 건가요?
let db: DB = DB()
db.setProjectKey(pjkey)//pjkey: ios용 프로젝트 키
print("\(db.getDataFrom(""))")