2014年02月02日

ユニバーサルアプリを作るときにiPhoneとiPadを見分ける方法を調べてみた。

どうやってユニバーサルアプリをつくればいいか、いろいろ調べてみた。 AppDelegeteのiPad版のファイルを新規(iPadAppDelegate)に作成して main.mに下記コードを追加したら識別ができた。
#import 

#import "AppDelegate.h"
#import "IPadAppDelegate.h"



int main(int argc, char * argv[])
{
    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) {
        @autoreleasepool {
            return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
        }
    }else{
        @autoreleasepool {
            return UIApplicationMain(argc, argv, nil, NSStringFromClass([IPadAppDelegate class]));
        }
    }
}

posted by masa at 22:33| Comment(0) | IPhoneアプリ開発 | このブログの読者になる | 更新情報をチェックする

2014年01月20日

NSSetをソート

Core Dataからリレーションを設定したデータはNSSet型が取得できる。 これを1つkeyを指定してソートする

//1つkeyを指定してNSSetをソートする
- (NSArray *)sortArrayFromSet:(NSSet *)set sortDescriptorWithKey:(NSString *)key ascending:(BOOL)ascending
{
    NSSortDescriptor *sortDescriptor = [NSSortDescriptor sortDescriptorWithKey:key ascending:ascending];
    NSArray *sort = [NSArray arrayWithObject:sortDescriptor];
    return  [set sortedArrayUsingDescriptors:sort];
}
posted by masa at 20:17| Comment(0) | IPhoneアプリ開発 | このブログの読者になる | 更新情報をチェックする

2013年06月13日

appledocを使ってみた

「iOSアプリ開発 達人のレシピ100」を買ったてみました。



そのなかで、とても面白いものがありました。

「appledoc」の紹介で、ソースコードからAPIドキュメントを自動生成の方法だ。
こんな便利なものが有ったなんて、、、。

早速試してみました。

下記テンプレからアプリをつくり

スクリーンショット_2013-06-13_20.47.22.png

appledocをインストールをして、下記コマンドでHtmlを出力。


appledoc --project-name <プロジェクト名> --project-company <会社名> --create-html --no-create-docset --keep-undocumented-objects --keep-undocumented-members --output <出力先Path> <ソースコードのPath>


生成されたファイル類からindex.htmlを開いてみる
スクリーンショット 2013-06-13 20.51.12.png
Class ReferencesのAppDelegateをクリックしてみる

スクリーンショット 2013-06-13 20.52.01.png

すごい!

スクリーンショット 2013-06-13 20.54.32.png

コメントもちゃんと反映される

スクリーンショット 2013-06-13 20.56.33.png

Htmlなのでこんな感じでコメントを赤色で指定してみると、、、

スクリーンショット 2013-06-13 20.59.26.png

うまく反映された

スクリーンショット 2013-06-13 20.59.12.png


posted by masa at 21:18| Comment(0) | IPhoneアプリ開発 | このブログの読者になる | 更新情報をチェックする

2013年06月12日

16進数のカラーコードからUIColorを指定

Web上では16進数で表現したカラーコードがたくさん掲載されていて、いざIPhoneで使おうとすると 加工が必要でめんどくさかったのでメソッドを作ってみました。
/**
 16進数のカラーコードから色を指定できるメソッド
 #があってもなくてもOK
 */
-(UIColor*)colorHexaCode:(NSString *)HexaStr alpha:(CGFloat)alpha
{
    unsigned int red;
    unsigned int green;
    unsigned int blue;
    
    //#がある場合は空文字に変換
    HexaStr= [HexaStr stringByReplacingOccurrencesOfString:@"#" withString:@""];
    
    for (NSInteger i = 0; i <= 4; i+=2) {
        NSString *colorStr = [HexaStr substringWithRange:NSMakeRange(i, 2)];
        
        NSScanner *scanner = [NSScanner scannerWithString:colorStr];
        switch (i) {
            case 0:
                [scanner scanHexInt:&red];
                break;
            case 2:
                [scanner scanHexInt:&green];
                break;
            case 4:
                [scanner scanHexInt:&blue];
                break;
            default:
                break;
        }
    }
    return [UIColor colorWithRed:red/255.0 green:green/255.0 blue:blue/255.0 alpha:alpha];
}

使い方は下記
- (void)viewDidLoad
{
    [super viewDidLoad];
    
    self.view.backgroundColor = [self colorHexaCode:@"23b396" alpha:1];
    UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(30, 100, 320, 100)];
    label.textColor = [self colorHexaCode:@"#edf0f1" alpha:1];
    label.backgroundColor = [UIColor clearColor];
    label.text = @"Sample,Sample....";
    label.font = [UIFont boldSystemFontOfSize:30];
    [self.view addSubview:label];
}

さいきんフラットデザインがかっこいいなと 思い始めてきた、、、、

スクリーンショット 2013-06-12 22.12.11.png
posted by masa at 22:23| Comment(0) | IPhoneアプリ開発 | このブログの読者になる | 更新情報をチェックする

2013年06月11日

NSString ある文字列に検索する任意の文字列がはいっているか判定方法

/*
 第一引数:検索される文字列
 第二引数:検索する文字列
 */
-(BOOL)searchStr:(NSString *)str searchWord:(NSString*)searchStr
{
    BOOL res;
    NSRange searchResult = [str rangeOfString:searchStr];
    if (searchResult.location == NSNotFound) {
        res = NO;
    } else {
        res = YES;
    }
    return res;
}

使い方
- (void)viewDidLoad
{
    [super viewDidLoad];

    NSString *Str = @"This is a sample str";
    NSString *searchStr = @"str";
    
    NSString *str = @"検索する文字列は含まれてません";
    
    if ([self searchStr:Str searchWord:searchStr]) {
        str = @"検索する文字列は含まれてます。";
    }
    NSLog(@"%@",str);
}
posted by masa at 21:19| Comment(0) | IPhoneアプリ開発 | このブログの読者になる | 更新情報をチェックする