思い出さなきゃいけないことがいっぱいある

妊娠、出産に伴い2年ほど休職していたので、ちょっとした浦島太郎状態ではあるけど、色々と思い出さないと仕事が捗らないので、頑張って思い出しているところです。

フロントエンドエンジニア的には、
bootstrap(的なもの)
jQuery
vim
などなど。

CSSフレームワークのデファクトスタンダードってなんだろ?bootstrapって今でもイケてるのかな?

というか、「デファクトスタンダード」とか、「フレームワーク」とか、そういう用語的なものを思い出すところからやっています。
「jQuery」っていう単語思い出すのも一苦労だったのは内緒だ。

とりあえずvim。
昔ブックマークしていたページを発掘して読む。
http://qiita.com/jnchito/items/57ffda5712636a9a1e62
使いながら覚えようっと…

明日はjsだな

カテゴリー: 雑談

vimの設定をする。

妊娠、出産を経て、どうにか子の預け先も決まり先日復職しました。
復職して作業環境を色々構築したことをメモしようと思います。

エディタはなんたってvimだって誰かが言ってたので、これを機にわたしもvimmerになろっということでできるだけvimでテキストの編集をしている次第。

軽くググったら設定ファイルを弄ると良いらしいよってことで、vimのノーマルモードで
:echo $VIM
と入力した時に出てくる場所のvimrcをいじってみようかな?とやってみたところ…

書き込み不可らしいよ?

sudoでやっても何してもだめだったので、もう少し調べてみたら、home直下に「.vimrc」を作ってそこに好き勝手に書き込めば良いそうなので、そうやって幸せになりましたとさ。めでたしめでたし。

カテゴリー: メモ タグ: , , , , , , ,

NSDictionaryの中身をfor..inで取り出す

こちらのサイトを参照

NSDictionaryのメソッドkeyEnumeratorを使うらしい。

NSDictionary *dictionary = [NSDictionary dictionaryWithObject:@"hoge" forKey:@"fuga"];
for (id key in [dictionary keyEnumerator]) {
    NSLog(@"Key:%@ Value:%@", key, [dictionary valueForKey:key]);
}

なんていうかネタ元サイトに詳しく書いてあります。(白目)

cにはfor each文とか無いのかな。

カテゴリー: iOS, メモ タグ: , , , ,

NSStringをdoubleにキャストする方法

掲題通り。
普通の?クラスのキャストだと↓こんな感じだけど、NSStringをdoubleとかfloatにキャストしたい場合はどうするんだろう?

CustomUIViewClass *hoge = (CustomUIViewClass *)[self.subviews objectAtIndex:0];

ググッた結果、NSStringのメソッドdoubleValueを使うらしい。

double hoge = [@"12.345" doubleValue];

CGFloatやfloatならfloatValue

CGFloat hoge = [@"12.345" floatValue];

NSStringクラスのヘッダファイルを見たら、他にもintValueとかintegerValueとか色々あったよ。

カテゴリー: iOS, メモ タグ: , , , ,

カスタムUIViewクラスの初期化処理

だんだんObjective-CというかXcodeの気持ちがわかってきた順加です。

UIViewを親クラスとしたカスタムクラスを作って、storyboardに配置したインスタンスに関連付けました。

しかしながら、Xcodeがデフォルトで書いてくれたコードには、ここに初期化処理を書いてねみたいなことが書いてあるのに、そのメソッドが呼ばれる気配がありません。

- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        // Initialization code
        NSLog(@"ここだよ");
    }
    return self;
}

デフォルトのコードの中には、コメントアウトされたdrawRectってメソッドがあるけど、ここに初期化処理を書くのは違う気がする。

よくよく調べてみたところ、storyboardを使った場合には、initWithFrameメソッドは呼ばれず、initWithCoderメソッドが呼ばれるようでした。

なのでinitWithFrameは消してしまって、下記のようにすればOK。

- (id)initWithCoder:(NSCoder *)aDecoder
{
    self = [super initWithCoder:aDecoder];
    if(self){
        [self myInit];
    }
    return self;
}

- (void)myInit
{
    NSLog(@"\(^o^)/");
}
カテゴリー: iOS, メモ タグ: , , , , , ,

UITextViewを末尾へスクロールさせる

UITextFieldのtext内容をUITextViewにどんどん追加していくということをやりたい時。
行数が増えても自動的にスクロールして一番下の行が表示されるようにしたい。

@interface MyViewController ()

@property (weak, nonatomic) IBOutlet UITextField *myTextField;
@property (weak, nonatomic) IBOutlet UITextView *myTextView;

@end

UITextViewのtextプロパティを変更する前に、scrollEnabledをNOにしておくところがポイントらしい。

あと、テキストの選択位置(カーソル位置?)にスクロールする機能もあるらしくて、その辺りの設定もしてあげると幸せになるっぽい。

よくわからないけど←

以下は@implementationの中身


- (void)viewDidAppear:(BOOL)animated
{
    
    //予めテキストビューの選択位置を設定
    NSString *viewText = _myTextView.text;
    NSRange range;
    range.location = [viewText length];
    _myTextView.selectedRange = range;
    
}
- (void)makeMyText {
    
    _myTextView.scrollEnabled = NO;
    
    NSString *newText = _myTextField.text;
    NSString *oldText = _myTextView.text;
    NSString *modifiedText = [NSString stringWithFormat:@"%@%@\n", oldText, newText];
    
    _myTextView.text = modifiedText;
    _myTextField.text = @"";
    
    [self scrollText];
 
}

- (void)scrollText {
    NSRange range;
    range.location = [_myTextView.text length];
    _myTextView.selectedRange = range;
    _myTextView.scrollEnabled = YES;
    
    CGFloat scrollY = _myTextView.contentSize.height + _myTextView.font.pointSize - _myTextView.bounds.size.height;
    CGPoint scrollPoint;
    
    if (scrollY < 0) {
        scrollY = 0;
    }
    scrollPoint = CGPointMake(0.0, scrollY);
    
    [_myTextView setContentOffset:scrollPoint animated:YES];
    
}

あとはテキスト送信時にmakeMyTextメソッドを呼べばOK。

カテゴリー: iOS, メモ タグ: , , ,

Thread 1:signal SIGABRT

絶賛iOSアプリを初心者開発中。

Thread 1:signal SIGABRT

ってエラーが出た。
コード内のエラーではなくて、ビルドした後、シミュレータで動かしている途中でシミュレータが落ちて、main.mの中に出てくる。

ググったら、原因はコレっていうものではないらしい。
AS3とかでいうところの、
#1009: null のオブジェクト参照のプロパティまたはメソッドにアクセスすることはできません。
っていうアレ状態らしいwww

基本的にイージーミスが原因のことが多いみたい。

今回の場合は、ストーリーボードで配置したインスタンスをコードに接続した時に生成されたコードを消しっぱなしにしたせいだった。

ストーリーボードのコネクションインスペクタから当該部分を削除したら動くようになった。

カテゴリー: iOS, メモ タグ: , , , ,

ステータスバーの文字を白っぽくする

掲題の件、自分用のメモです。

1.p-listに「View controller-based status bar appearance」を追加して、Valueを「YES」に設定する。
p-listっていうのは、Supporting Filesってフォルダ?に入ってる「.plist」ファイルのことだ。

2.viewControllerに下記のメソッドを追加

- (UIStatusBarStyle)preferredStatusBarStyle
{
    return UIStatusBarStyleLightContent;
}

こちら参考にしました

カテゴリー: iOS, メモ タグ: , , ,

WILLCOMのメール詰まりから解消するための手順

小さすぎて使いにくいながらも愛用しているWILLCOMのストラップフォン2こと「WX06A」。
つい数日前から、Eメールを受信しようとしても、「受信中」の画面から先に進まなくなった。

なんだろうと思ってググって出てきた方法を試したら解消したのでメモしておくね。

2chスレより引用:

356 :190:2013/12/19(木) 13:25:29.83 ID:NA1xMsno0
[Yahoo!グループ]サービス終了のお知らせ 
とかいう文字化けメール受信したら、Eメール受信中から進まなくなった。 
めんどくせぇ。 

357 :白ロムさん:2013/12/20(金) 10:46:39.37 ID:GnsrDrAS0
>>356 
俺も同じメールでメールサーバー詰まりしたよw 

一応同様のケースが起きた際の他の人のためにサーバー詰まりした場合の対処方法を書いておくけれど、 

・オンラインサインアップの添付ファイルの削除の設定 
・Eメール設定の受信行数制限をONにして0行に設定 

これを行う事によって詰まったメールを頭だけの尻切れ状態で吐き出させて、それで詰まりを解消させる事が出来る可能性があるよ 
(ちなみに詰まり解消後は上記設定は元に戻す) 

ただし、この対処方法だとメールの内容によっては尻切れになった事によって「肝心の後半部分が無い・・・orz」なんて事も起こりうるので、 
保険のためにも普段から転送メールを併用しておく事をお勧めするよ。 
(今回の場合もサーバーが詰まったと同時に転送先にも詰まった原因のメールのコピーが送られていたので、 
上記対処方法により尻切れしたメールも問題無く全文を読む事ができたし、詰まった原因メールがどのメールなのかも当たりがつけられた。 
あとはストラップフォンで文字化けが起きた際の対処方法としても役に立つよ)

原因は「[Yahoo!グループ]サービス終了のお知らせ」という件名のメールらしい。確かにわたしのところにも来ていた。

  1. [オンラインサインアップ]で、添付ファイルを[削除]に設定する
  2. 本体の[Eメール設定]で、[受信行数制限]を[ON]にして[0行]に設定する

わたしはメインのメールを受信できない時でも読めるように、WILLCOMのメアドに転送して使っているだけなので、内容が切れたりすることについては問題無かった。

以上

カテゴリー: 雑談 タグ: , , , , , ,

記事の自動保存とリビジョン管理を無効にする

WordPressの記事IDが連番にならずに飛び飛びで増えていくので、原因を調べたところ、リビジョン管理機能を使っているとそうなっちゃうらしいってことがわかったので、折角だからプラグインを使わずに無効化する方法を調べた。

wp-config.php

/** リビジョン管理を無効にする */
define(WP_POST_REVISIONS, false);

/** 自動保存の間隔を5日にする(実質の無効) */
define(AUTOSAVE_INTERVAL, 432000);

↓このコードよりも前に記述すること

/** Sets up WordPress vars and included files. */
require_once(ABSPATH . 'wp-settings.php');

また、自動保存の間隔を30日とかすごく長くしたら、表示がおかしくなった。
具体的には「下書きとして保存」や「公開」のボタンが高速で点滅するような感じ。

上記は5日に設定したら治った。

また、タイトルを入力した時に走る自動保存を無効にするために以下のコードをfunctions.phpに追加する。

functions.php

/* 記事のオートセーブを無効 */
function disable_autosave() {
    wp_deregister_script('autosave');
}
add_action('wp_print_scripts','disable_autosave');

参考サイトはいっぱいあってよくわからなくなったので割愛(ごめんなさい!!)

カテゴリー: WordPress, メモ タグ: , , , , , , , , , , ,