Category Archives: IOS

「Objective-C」ios開発でNSUserDefaultsを利用するサンプルコード

// NSUserDefaultsオブジェクトを作成
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

//データの保存
[defaults setObject:@”jereh” forKey:@”name”];
//キャッシュデータがディスク上に格納される
[defaults synchronize];

//データを取得
NSString *name = [defaults objectForKey:@”name”];

//データを削除
[defaults removeObjectForKey:@”name”];
[defaults synchronize];

「Objective-c」iOSでProperty Listを利用してデータの保存方法

// ファイルのパスを取得
NSString *documentPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
NSString *filePath = [documentPath stringByAppendingPathComponent:@”student.plist”];

// plistファイルにデータを格納
NSMutableDictionary *dict = [NSMutableDictionary dictionary];
NSDictionary *stu1= @{@”idNum”:@”1″,@”name”: @”jereh”};
[dict setValue:stu1 forKey:@”stu1″];
// 新しいデータがplistファイルに書き込まれる
[dict writeToFile:filePath atomically:YES];

// plistファイルのデータを読み出す
NSMutableDictionary *dicNow = [[NSMutableDictionary alloc] initWithContentsOfFile:filePath];
int idNum = [[dicNow objectForKey:@”idNum”] intValue];
NSString *name = [dicNow objectForKey:@”name”];

「ios開発」SQLite3を利用してDBを抽出する

/**
* データを読む
*/
– (void)_readData{
//1> sql文の定義
NSString * sql=@”select id,name,age,tel from t_person “;

sqlite3_stmt * stmt=NULL;
//2> 文法の正しさを確認
if(SQLITE_OK==sqlite3_prepare_v2(sqlite, sql.UTF8String, -1, &stmt, NULL)){

//3> ループで結果を取得
while(sqlite3_step(stmt)==SQLITE_ROW){
//4>コレクションにデータを取り出す
int ID=sqlite3_column_int(stmt,0);
const unsigned char *name=sqlite3_column_text(stmt, 1);
int age=sqlite3_column_int(stmt, 2);
const unsigned char *tel=sqlite3_column_text(stmt, 3);
NSString * names=[NSString stringWithUTF8String:(const char *)name];
NSString * tels=[NSString stringWithUTF8String:(const char *)tel];
NSLog(@”%d,%@,%d,%@”,ID,names,age,tels);
}
}
}

「ios開発」SQLite3を利用してDBを操作する

/**
* テーブルを作成
*/

– (void) _createTable{

NSString *create=@” create table if not exists t_Person (id integer primary key autoincrement,name text,age integer,tel text)”;
[self _execSql:create andTip:@”テーブルを作成”];

}
/**
* データ操作を挿入
*
* @param name 名前
* @param age 年齢
* @param tel 電話
*/

– (void) _insertName:(NSString *) name andAge:(int )age andTel:(NSString *) tel{

NSString * insert=[NSString stringWithFormat:@” insert into t_Person(name,age,tel) values(‘%@’,%d,’%@’)”,name,age,tel];
[self _execSql:insert andTip:@”挿入操作”];

}

/**
* データベースを操作
*
* @param sql 実行SQL
* @param tip 操作件名
*/

– (void) _execSql:(NSString *) sql andTip:(NSString *) tip{

char * result;
if(SQLITE_OK==sqlite3_exec(sqlite, sql.UTF8String, NULL, NULL, &result)){
NSLog(@”%@成功!”,tip);
}else{
NSLog(@”%@失敗!”,tip);
}

}

「ios開発」SQLite3を利用してDBに接続する

– (void) _connectDB{

//1>Sandboxのパスを取得する際の初期化
NSString * path=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0];
path=[path stringByAppendingPathComponent:@”new.sqlite”];
NSLog(@”%@”,path);

//2>接続しない場合、接続を作成
if(SQLITE_OK==sqlite3_open(path.UTF8String, &sqlite)){
NSLog(@”データベースの作成に成功”);
}else {
NSLog(@”データベースの作成に失敗!”);
}

}

[cocos2dx入門] schedule(ルート)の利用方法

参考コード:
#include
#include
using namespace std;

class Ref
{
protected:
Ref(){isLoop = false;}
virtual void update(){cout<< “スーパーループ” << endl;} bool isLoop; public: void unScheduleUpdate(){isLoop = false;} void ScheduleUpdate(){isLoop = true;} void mainLoop(){if (isLoop)this->update();}
};

class myClass :public Ref
{
public:
virtual void update(){cout << “このループ” << endl;} }; int main(int argc, char* argv[]) { Ref*ref = new myClass; ref->ScheduleUpdate();
for (;;)
{
cout << “loop” << endl; Sleep(500); ref->mainLoop();
ref->unScheduleUpdate();
}
return(0);

「Objective-C」ios開発でblockを定義、呼び出す方法のまとめ

1.int result = ^(int a){return a*a;}(5);
NSLog(@”—result…%d”,result);

2.//Blockポインター
int(^iBlock)(int);
iBlock = ^(int a){ return a+2;};
//呼び出す
int bb = iBlock(10);
NSLog(@”—-bb….%d”,bb);

3. //copy処理
static int c = 5;
int (^cBlock)(int) = ^(int ccc){c = 8;return ccc*c;};
NSLog(@”—c…%d”,cBlock(2));

4.//”__block”の使い方
__block int v = 0;
int (^vBlock)(int) = ^(int a){ v = 3; return a*v;};
NSLog(@”—abc…%d”,vBlock(2));

5.配列
NSMutableArray *arr = [NSMutableArray arrayWithObjects:@”one”,@”two”,@”three”, nil];
int aarrr = ^(int a){[arr removeLastObject]; return a*a;}(2);
NSLog(@”–aarrr…%d—arr…%@”,aarrr,arr);

6.関数を定義

typedef void (^myBlock)(int);
@property (nonatomic,assign)myBlock senBlock;
-(void)returnBlock:(myBlock)senderBlocks;

//BTPushViewController
-(void)returnBlock:(myBlock)senderBlocks
{
self.senBlock = senderBlocks;
}

//戻すボタン
– (void)navLeftBtnAction:(UIButton *)btn
{
//blockで値を与える
if (self.senBlock) {
self.senBlock(15);
}
[self.navigationController popViewControllerAnimated:YES];
}
//リダイレクト処理
-(void)doButton
{
BTPushViewController *pushs = [[BTPushViewController alloc] init];

pushs.senBlock = ^(int a)
{
NSLog(@”——–block値%d”,a);
};

[self.navigationController pushViewController:pushs animated:YES];
}

「Objective-C」initWithNibName初期化メソッドを利用する参考コード

参考コード:
– (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
UIBarButtonItem *refresh = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemRefresh target:self action:@selector(refreshData:)];
refresh.tintColor = [UIColor whiteColor];
self.navigationItem.rightBarButtonItem = refresh;

}
return self;
}

iOS8で「application badge value」を設定するサンプルコード

1.エラーメッセージ
Attempting to badge the application icon but haven’t received permission from the user to badge the application

2.処理サンプルコード
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0) {
UIUserNotificationType myTypes = UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeSound;
UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:myTypes categories:nil];
[[UIApplication sharedApplication] registerUserNotificationSettings:settings];
}else
{
UIRemoteNotificationType myTypes = UIRemoteNotificationTypeBadge|UIRemoteNotificationTypeAlert|UIRemoteNotificationTypeSound;
[[UIApplication sharedApplication] registerForRemoteNotificationTypes:myTypes];
}

「Objective-C」AFNetworkReachabilityManagerを利用する方法

1.ネットワークをモニター
[[AFNetworkReachabilityManager sharedManager] startMonitoring]

2.参考ソースコード
[[AFNetworkReachabilityManager sharedManager] setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
switch (status) {
case AFNetworkReachabilityStatusNotReachable:{
NSLog(@”ネットワークがありません”);
break;
}
case AFNetworkReachabilityStatusReachableViaWiFi:{
NSLog(@”WiFi環境”);
break;
}
case AFNetworkReachabilityStatusReachableViaWWAN:{
NSLog(@”無線ネットワーク”);
break;
}
default:
break;
}
}];
#define kNetworkNotReachability ([AFNetworkReachabilityManager sharedManager].networkReachabilityStatus <= 0) //无网

3.遅延コール
eg:[self performSelector:@selector(login:) withObject:nil afterDelay:0.35f];