スポンサーサイト
--.--.--.-- Posted in スポンサー広告
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Xcodeのショートカット
Sat.29.09.2012 Posted in Xcode
0 comments 0 trackbacks
Xcodeのショートカットで使えそうなものをまとめてみました。

Cmd+[
インデントを下げる

Cmd+]
インデントを上げる

Cmd+/
コメントアウト

Ctrl+I(アイ)
適切にインデント

Ctrl+E
行末に移動

Ctrl+A
行頭に移動

Ctrl+F
左に移動

Ctrl+B
右に移動

Ctrl+P
上に移動

Ctrl+N
下に移動

Ctrl+K
カーソル位置から行末まで削除

Ctrl+H
delete

Ctrl+D
Forward Delete

スポンサーサイト

Theme: プログラミング « コンピュータ

Objective-Cのgetter、setter
Sat.29.09.2012 Posted in Objective-C
0 comments 0 trackbacks
Objective-Cのゲッター、セッターはこんな感じで

Hoge.h

@interface Hoge : NSObject

@property (nonatomic, retain) NSString *piyo;
@property (nonatomic, retain) NSString *fuga;
@property (nonatomic, retain) NSString *hogera;

@end


Hoge.m

#import "Hoge.h"

@implementation Hoge

@synthesize piyo;
@synthesize fuga;
@synthesize hogera;

@end

Theme: プログラミング « コンピュータ

【iPhone開発】画面遷移しないtable viewの作成方法
Sat.29.09.2012 Posted in etc
0 comments 0 trackbacks
テーブル作成時デフォルトではテーブルの行を選択すると青くなり次画面に遷移しますが
viewDidLoadに以下を入れると選択しても青くならず次画面へも遷移しません。


self.tableView.allowsSelection = NO;

no identities are available for signing
Sat.29.09.2012 Posted in Developer & iTunes Connect
0 comments 0 trackbacks
「no identities are available for signing」の警告が出た時は。

XCodeをアップデート等した際に、Provisioningファイルが失われた可能性があります。
developer.apple.comにアクセスしてプロビジョニングファイルをダウンロードしましょう!
以下の順にクリックすればファイルダウンロードができます。
iOS Provisioning Portal>Provisioning>Distribution

Theme: プログラミング « コンピュータ

【iPhone開発】テーブルの作成方法
Sat.29.09.2012 Posted in Objective-C
0 comments 0 trackbacks
テーブル作成のメモ
まずは「MainStoryboard.storyboard」(以下storyboard)を開きます。
右側のShow the Object libraryよりTable View Controllerのアイコンを
storyboardにドラック&ドロップします。

storyboardには2つViewがあります。
はじめからあるView Controllerの左にある矢印を
Table View Controllerにドラック&ドロップします。
これでアプリを起動した時に呼び出される画面が変更されました。
はじめからあったView Controllerは消してしまってかまいません。

では一旦テーブルを表示してみましょう!
左上のプルダウンよりiPhone x.0 Simulatorを選択してRunボタンを押すだけです。

どうですか?テーブルぽい画面が表示されましたか?


次にテーブルを装飾してみましょう!
File > New > File... > iOS > Cocoa Touch > Objective-C classを選択して
「Next」ボタンを押下します。

class は好きな名前を付けましょう!
ここでは「TableViewController」とします。
Subclass of にUITableViewControllerを選択します。
下のチェックは今回は付けません。
「Next」「Create」とボタン押下します。
以下の2ファイルが作成されているはずです。
TableViewController.h
TableViewController.m

storyboardを選択、Table Viewを選択、Show the Identity inspector > Custom class > class のプルダウンに
先程作成したファイルが表示されているので選択します。
これでアプリ起動時に作成したクラスが呼び出されるようになります。

それでは実装します。
まずはTableViewController.hを開きテーブルビューに表示するリストを宣言します。


@interface TableViewController : UITableViewController {

// テーブルに表示するリストです。
NSMutableArray *hogeList;
}


次にTableViewController.mを開き以下のメソッドを編集します。


- (void)viewDidLoad
{
[super viewDidLoad];

// 「〜.h」で宣言したテーブルビューに表示するリストです。
hogeList = [NSMutableArray array];
[hogeList addObject:@"項目1"];
[hogeList addObject:@"項目2"];
[hogeList addObject:@"項目3"];
}

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
// Return the number of sections.
return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
// テーブルに表示する行数を記述します。
// リストの数は3なので「return 3」としてもよいのですが、リストが増えてもよいように「.count」とします。
// これでリストの中身が増えた時は自動で4,5.....と増えていきます。
return hogeList.count;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}

// この行を記述することでテーブル表示されるようになります。
cell.textLabel.text = [hogeList objectAtIndex:indexPath.row];
// 以降は装飾です。上から矢印表示、左寄、文字サイズ指定
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
cell.textLabel.textAlignment = UITextAlignmentLeft;
cell.textLabel.font = [UIFont systemFontOfSize:17];

return cell;
}


2つワーニングが出ていますが消してしまいましょう!
#warning Potentially incomplete method implementation.
#warning Incomplete method implementation.

Runボタンを押すとテーブルが表示されます。
うまく表示されましたか?
以上でテーブルの作成は終了です。

Theme: プログラミング « コンピュータ

【iPhone開発】SQLiteであいまい検索
Fri.28.09.2012 Posted in Objective-C
0 comments 0 trackbacks
【iPhone開発】SQLiteであいまい検索

SQLiteでのあいまい検索。
HOGE_TBLテーブルからHOGE_HOGEカラムに文字列「あ」を含むレコードを抽出するには以下のように記述する。



NSArray* paths = NSSearchPathForDirectoriesInDomains( NSDocumentDirectory, NSUserDomainMask, YES );
NSString* dir = [paths objectAtIndex:0];
FMDatabase* db = [FMDatabase databaseWithPath:[dir stringByAppendingPathComponent:@"Hoge.db"]];

NSString* sql = @"SELECT * FROM HOGE_TBL WHERE HOGE_HOGE LIKE ?;";
NSString *moji = @"あ";
NSString *formatmoji = [NSString stringWithFormat:@"%@%@%@", @"%%", moji, @"%%"];

[db open];
FMResultSet* results = [db executeQuery:sql, formatmoji];
[db close];


実行したSQL以下
SELECT * FROM HOGE_TBL WHERE HOGE_HOGE LIKE %あ%

ポイントは「%」と「あ」の結合部分
「@"%"」では文字列の「%」と認識されないので「@"%%"」と書くのが正しい。

Theme: プログラミング « コンピュータ

【iPhone開発】Prototype table cells must have reuse identifiersの警告が出た時の対処方法
Fri.28.09.2012 Posted in Error, Warning
0 comments 0 trackbacks
Prototype table cells must have reuse identifiersのエラーが出た時の対処方法


UITableViewCellクラスを使用する場合、プロトタイプセルは不要なので個数を0にすれば警告が出なくなります

MainStoryboard.storyboard > Table View > Prototype Cells →0を入力

Theme: プログラミング « コンピュータ

【iPhone開発】警告 Directory not found for option '~'
Fri.28.09.2012 Posted in Error, Warning
0 comments 0 trackbacks
Directory not found for option の警告が出た時の対処方法

プロジェクトファイル > TARGETS > Build Settings > Search Paths > Library Search Paths
左のを押下して展開してみよう!
「Library Search Paths」の中に存在しないパスがないか確認する。
存在しないパスを削除することで解消されるはず!!

Theme: プログラミング « コンピュータ

【iPhone開発】Objective-C テーブルの再読み込みを行う
Fri.28.09.2012 Posted in Objective-C
0 comments 0 trackbacks
テーブルの一覧に表示する項目が更新された時などは
以下の一文を追加すればテーブルを再読み込みして
更新を反映することが可能です。

[self.tableView reloadData];

Theme: プログラミング « コンピュータ

【iPhone開発】Objective-C リストの中身の整数を取り出す
Fri.28.09.2012 Posted in Objective-C
0 comments 0 trackbacks
リストオブジェクトから整数を取り出す際にはまったのでメモ。

まずは整数:NSNumberのオブジェクトを作ってみる。

NSMutableArray *array = [[NSMutableArray alloc] init];
[array addObject:[NSNumber numberWithInt:2]];
[array addObject:[NSNumber numberWithInt:5]];
[array addObject:[NSNumber numberWithInt:9]];


で、このリストから整数を取り出したかったのだが不覚にもはまってしまう。
2番目のリストを取り出したかったのだが上はよくわからない数字を取得。
下のように取得するのが正しいらしい。
要はキャストの仕方が間違ってた訳です。情けない。。。

NSInteger value;
value = (NSInteger)[array objectAtIndex:2]; //不正解
value = [[array objectAtIndex:2] intValue]; //正解

Theme: プログラミング « コンピュータ

【iPhone開発】Objective-Cでの文字列変換いろいろ
Thu.27.09.2012 Posted in Objective-C
0 comments 0 trackbacks
Objective-Cでの文字列への変換方法の備忘録です。


整数を文字列へ

int x = 100;
NSString *str = [NSString stringWithFormat:@"%d", x];


実数を文字列へ

float x = 1.2345f;
// 小数点以下2桁まで
NSString *str1 = [NSString stringWithFormat:@"%.2f", x]; // 1.23
// 3桁
NSString *str2 = [NSString stringWithFormat:@"%.3f", x]; // 1.235(四捨五入される)
// 5桁
NSString *str3 = [NSString stringWithFormat:@"%.5f", x]; // 1.23450(0埋めされる)
// 桁数指定なし
NSString *str4 = [NSString stringWithFormat:@"%f", x]; // 1.234500(小数点以下6桁)

double y = 1.23456789;
// 桁数指定なし
NSString *str5 = [NSString stringWithFormat:@"%f", y]; // 1.234567(小数点以下6桁)


小数以下の桁数を動的に変えるには以下のように記述する。

NSString *str7 = [NSString stringWithFormat:@"%g", x]; // 1.2345


次は文字列からの変換方法

文字列から数値へ

NSString *str = @"1.23456789";
int x = [str intValue];
float y = [str floatValue];
double z = [str doubleValue];


Theme: プログラミング « コンピュータ

【iPhone開発】Objective-Cの文字列比較
Tue.25.09.2012 Posted in Objective-C
0 comments 0 trackbacks
文字列の比較は単純に「==」では比較ができません。
「==」は同じオブジェクトかどうかを比較するためには使用できますが、
文字列の値を比較するためのものではないからです。

では文字列の比較はどうするかというと・・・


NSString *hoge1 = @"あいうえお";
NSString *hoge2 = @"あいうえお";

if ([hoge1 isEqualToString:hoge2]) {

} else {

}

これでオブジェクト同士ではなくオブジェクトの値の比較ができる。

Theme: プログラミング « コンピュータ

【iphone開発】iAdの実装方法
Tue.25.09.2012 Posted in Objective-C
0 comments 0 trackbacks
1.iAd.frameworkをプロジェクトに入れる。
・Xcode左「Show the Project Navigator」より作成したプロジェクトを選択
・TARGETS > Build Phases > Link Binary Librariesの「+」ボタンを押下
・iAd.frameworkを選択する。

2.iAdを表示させたいヘッダを編集
以下はサンプルコード

#import
#import

@interface ViewController : UIViewController
{
ADBannerView *adView;

BOOL bannerIsVisible;
}

@property (nonatomic,assign)BOOL bannerIsVisible;

@end


3.ソースを編集
以下はサンプルコード

#import "ViewController.h"

@implementation ViewController
@synthesize bannerIsVisible;

- (void)viewDidLoad
{
[super viewDidLoad];

adView = [[ADBannerView alloc] initWithFrame:CGRectZero];

adView.frame = CGRectOffset(adView.frame, -320, 0);

adView.requiredContentSizeIdentifiers = [NSSetsetWithObject:ADBannerContentSizeIdentifierPortrait];

adView.currentContentSizeIdentifier =ADBannerContentSizeIdentifierPortrait;

[self.view addSubview:adView];

adView.delegate=self;

self.bannerIsVisible=NO;
}

- (void)bannerViewDidLoadAd:(ADBannerView *)banner
{
if (!self.bannerIsVisible
{
[UIView beginAnimations:@"animateAdBannerOn" context:NULL];

banner.frame = CGRectOffset(banner.frame, 320, 0);

[UIView commitAnimations];

self.bannerIsVisible = YES;
}
}

-(void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError*)error
{
if (self.bannerIsVisible)
{
[UIView beginAnimations:@"animateAdBannerOff" context:NULL];

banner.frame = CGRectOffset(banner.frame, -320, 0);

[UIView commitAnimations];

self.bannerIsVisible = NO;
}
}
@end

Theme: プログラミング « コンピュータ

Objective-Cでログ出力
Thu.20.09.2012 Posted in Objective-C
0 comments 0 trackbacks
Objective-CでNSLogを使ってログを出力する時のメモ

◎%@:NSString

NSString *test = [NSString stringWithFormat:@"テスト"];
NSLog(@"%@",test);


◎%d:int、BOOL
例)

int i = 1;
NSLog(@"%d",i) ;



BOOL y = YES;
NSLog(@"%d",y) ;


◎%f:double、float
例)

double i = 1;
NSLog(@"%d",i) ;


    %.3fと指定することで桁数を指定できる
 %s:言語の文字列(NULLターミネートされた文字列)

◎%@:オブジェクト(NSStringなど)
例)

NSString* test = @"ログ出力テスト";
NSLog(@"%@", test);


Theme: プログラミング « コンピュータ

【iPhone開発】ネットワーク接続確認を行う
Tue.04.09.2012 Posted in etc
0 comments 0 trackbacks
ネットワーク接続を行う際の実装方法を紹介します。

①まず以下で公開されているクラスをダウンロードします。
「Download Sample Code」ボタンを押下するとZipファイルがダウンロードされるので
解凍して「Classes」フォルダの2クラスをプロジェクトに追加します。
追加するクラスは以下です。
・Reachability.h
・Reachability.m
http://developer.apple.com/library/ios/#samplecode/Reachability/Introduction/Intro.html

②次にフレームワークの追加です。
追加方法は以下の通り
project>TARGETS>Build Phases>Link Buinary With Libraries>プラスボタン押下
「SystemConfiguration.framework」を追加します。

③接続判定を行いたい箇所に以下を記述します。
ネットワークに接続されていれば「true」を返してくれます。

○○○.m

- (BOOL)reachable {
Reachability *hostReach = [Reachability reachabilityForInternetConnection];

switch ([hostReach currentReachabilityStatus]) {
case NotReachable: //接続不可
return FALSE;
break;
case ReachableViaWWAN: //3G接続
break;
case ReachableViaWiFi: //Wi-fi接続
break;
default:
break;
}
return TRUE;
}



○○○.h

- (BOOL)reachable;



iPhone開発 テキストフィールドにフォーカス
Tue.04.09.2012 Posted in etc
0 comments 0 trackbacks
テキストフィールドにフォーカスを当てるには以下のように実装します。


//テキストエリアのサイズ、位置を指定して生成
UITextField *tf = [[UITextField alloc] initWithFrame:CGRectMake(20, 50, 200, 30)];
//フォーカスを当てる
[tf becomeFirstResponder];


topBack to TOP

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。