ラベル Objective-C/C の投稿を表示しています。 すべての投稿を表示
ラベル Objective-C/C の投稿を表示しています。 すべての投稿を表示

2016/06/18

[Xcode]alcatrazのアンインストール

alcatrazのアンインストールするにはどうすればいいのだろうか?

答えは、

rm -rf ~/Library/Application\ Support/Developer/Shared/Xcode/Plug-ins/Alcatraz.xcplugin
でおk

ただキャッシュデータが残っている可能性もあるので、
rm -rf ~/Library/Application\ Support/Alcatraz
も実行しました。

2015/12/11

[Realm][iOS][Objective-C]selectで取得した結果の合計件数

前回、selectして結果を表示する方法を書きましたが、合計件数の取得方法を書いてなかったので、その方法について。

/*--------------
Hoge
  BOOL isDeleted
  NSDate *createDate
--------------*/
RLMResults *rLMResults = [[Hoge objectsWhere:@"isDeleted = NO"] sortedResultsUsingProperty:@"createDate" ascending:NO];
NSLog(@"%lu",(unsinged ling)[rLMResults count]);

2015/12/09

[iOS][Objective-C]WKWebViewでJavaScriptのalertが表示されない件

WKWebViewでJavaScriptで単純に下のように組んでもなぜかalertがでない。

alert("hoge");
原因を探してみると、
iOS WKWebView not showing javascript alert() dialog
で、どうやらWKUIDelegateで設定を行わないといけないみたい。

なんで、こんなことしなくちゃーいけないのかなー。

不便な希ガス。

2015/12/08

[Realm][iOS][Objective-C]select

Realmでselect文を発行するには、

/*--------------
Hoge
  BOOL isDeleted
  NSDate *createDate
--------------*/
RLMResults *rLMResults = [[Hoge objectsWhere:@"isDeleted = NO"] sortedResultsUsingProperty:@"createDate" ascending:NO];
for(NSInteger i=0;i<[rLMResults count];i++){
  Hoge *hoge = [rLMResults objectAtIndex:i];
  NSLog(@"%@",hoge);
}
のようにすればおk

2015/12/05

[iOS][Objective-C]緯度経度が取得できなかった場合

CLGeocoderを使って逆ジオコーディングをして緯度経度を取得するときがあるのですが、そのときの、緯度経度が見つからなかった場合は、下のように組む。

CLGeocoder *geocoder = [[CLGeocoder alloc] init];
NSString *address;
[geocoder geocodeAddressString:address
          completionHandler:^(NSArray *placemarks,NSError *error){
            if(error){
              NSInteger code = [error code];
              NSString *domain = [error domain];
              if(code == 8 && [domain isEqualToString:@"kCLErrorDomain"]){
                NSLog(@"Address is not found.");
              }
            }
          }
];
NSLogの部分をi18n対応すれば、各言語に対応することになる。

参考
CLGeocoder returning error : The operation couldn’t be completed. (kCLErrorDomain error 8.)

2015/12/03

[iOS][Objective-C]UISearchBarのキャンセルボタンを動的に表示させる

Facebookの検索バーのようにフォーカスがあたるとキャンセルボタンを表示させ、フォーカスアウトするとキャンセルボタンを非表示にしたい場合は、どうすればいいのだろうか?

How do you hide/show UISearchBar's scope bar with animation?
によると、以下のようにプログラムを組んでみた。

- (BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar {
    [searchBar setShowsCancelButton:YES animated:YES];
    return YES;
}

- (BOOL)searchBarShouldEndEditing:(UISearchBar *)searchBar {
    [searchBar setShowsCancelButton:NO animated:YES];
    return YES;
}

- (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar {
    [searchBar setShowsCancelButton:NO animated:YES];
}
で、これでうまくいった。

2015/12/01

[iOS]iOS9でURLスキームの起動しない

アプリがインストールされていれば、アプリを起動して、ない場合は、appstoreに飛ばすという処理を組んでいたのだが、iOS9でうまくいかない。

何故かと思って調べてみると、

[iOS9] カスタムURLスキームで起動に失敗する(呼び出し元)

を発見して、どうやら、iOS9では、アプリを起動するときにalertViewが立ち上がるようになっているわけだが、この判断をする前に、appstoreに遷移してしまうので、結果的に、強制的にappstoreになってしまうという仕様。

で、回避策としてUniversal Linksというのを実装すればいいみたいなのですが、これは、まだ実装したことがないので、試した後、またエントリーを書きたいと思う。

2015/11/27

[iOS][Objective-C][Realm]作成したDBの中身がViewerアプリで閲覧できない

DLしたRealm Browserでアプリ内で作ったDBのデータを閲覧しようかなーっと思ったら見れないんだけど。。。

どうやら、セキュリティーの都合で見れないんだけど。

これ、セキュリティーのありなしにかかわらず見れるようにしてほしんですけど。。。

2015/11/26

[Realm][iOS][Objective-C]updateトランザクション

昨日、insertトランザクションについて書いたので、今度は、updateトランザクションについて。

RLMResults *rLMResults;
Hoge *hoge = [RLMResults objectAtIndex:0];
RLMRealm *realm = [RLMRealm defaultRealm];
[realm beginWriteTransaction];
hoge.foo = @"update realm data";
[realm commitWriteTransaction];
これでupdateできたんですが、以前、try-catchの悩みが解消されず。

2015/11/25

[Realm][iOS][Objective-C]insertトランザクション

writesセクションを読みながらinsertトランザクションを書いてみた。

Hoge *hoge = [[Hoge alloc] init];
hoge.foo = @"hello realm";
RLMRealm *realm = [RLMRealm defaultRealm];
[realm beginWriteTransaction];
[realm addObject:hoge];
[realm commitWriteTransaction];
これ、確かに、デバッグしたら、データが入っていたんだけど、トランザクションがこけた時の処理って、どうすればいいんだろー。

try-catchみたいにしたんだけど。

2015/11/20

[realm][iOS][Objective-C]Realmはautoincrementが

ない。

ずばり、現行バージョンのRealmでは、autoincrementがない。

2015/11/19

[realm][objective-c][iOS]Realmをインストール

realmをインストールするためにcocoapodsで下記のコードを入れた。

platform :ios, "7.0"
pod 'Realm'
これでインストールできました。

2015/11/16

[iOS][Objective-C]admobのiOS9対応

iOS9環境下でadmobを表示する場合には、
iOS 9 Considerations
で確認すると、Info.plistの

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
</dict>
を設定し、projectの
Build Settings→Build Options→Enable Bitcode
をNOに設定する必要があるみたいです。

確かにこれで表示できた。

2015/11/14

[iOS][Objective-C]CLLocationCoordinate2Dを作成

CLLocationCoordinate2D型の変数を作るには、どうすればいいのだろうか?

How to convert latitude longitude into CLLocationCoordinate2D
を確認すると、

CLLocationCoordinate2DMake(CLLocationDegrees latitude, CLLocationDegrees longitude)
を使えばいいみたい。

確かに、これ使ったらできたわ。

LLocationCoordinate2DMake

2015/11/13

[iOS][Objective-C]UITableViewCellのdetailTextLabelの背景色を変更

デバッグ目的でUITableViewCellのdetailTextLabelの背景色を変更したくて、下記のようにしても変わらなかったwww

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
  UITableViewCell *cell;
  cell.detailTextLabel.backgroundColor = [UIColor redColor];
  return cell;
}
Changing UITableViewCell textLabel background color to clear
によると、
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
     [[cell textLabel] setBackgroundColor:[UIColor clearColor]];
     [[cell detailTextLabel] setBackgroundColor:[UIColor clearColor]];
}
でいけるとあったので、上のメソッドを使ったら確かに変更された。

2015/11/11

[iOS][Objective-C]MKAnnotationViewのタップ時のハイライトを元に戻す

昨日のエントリーでMKAnnotationViewのタップ判定をする方法を書きました。

そこで、実際にタップできたのですが、今度は、タップした際にハイライトを元に戻す方法が見つからず調査しました。

- (void)deselectAnnotation:(id)annotation animated:(BOOL)animated
上のメソッドをコールしたらハイライトを消すことができました。

2015/11/10

[iOS][Objective-C]MKAnnotationViewのタップ判定

MKMapViewのaddAnnotationメソッドで追加したMKPointAnnotationをタップしたときの判定はどうすればいいのだろうか?

MKMapView MKPointAnnotation tap event
によると、MKMapViewDelegateの

- (void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)view
で取得することができそうだ。

確かに、タップを確認することができて、
- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id)annotation
で追加しなかったMKPointAnnotationでも取得することができた。

2015/10/28

[iOS][Objective-C]geocodeAddressString精度が悪い気がするんだけど

気のせい?

同じ住所で、mapアプリでは結果を返してくれるんだけど、geocodeAddressStringメソッドだと何も返してくれなかったりする。

使い方間違っているのかな?

2015/10/19

[本][iOS][Objective-C]iPhoneSDK開発のレシピ

読了

iPhoneSDK開発のレシピ
iPhoneSDK開発のレシピ
posted with amazlet at 15.10.20
高山 恭介 広部 一弥 松浦 晃洋
秀和システム
売り上げランキング: 32,277

1 Xcodeのレシピ
2 基本レシピ
3 UlKitのレシピ
4 テーブルのレシピ
5 画像のレシピ
6 マルチメディアのレシピ
7 ハードウェアのレシピ
8 ネットワークのレシピ
9 データベースのレシピ
10 外部ライブラリのレシピ
11 外部連携のレシピ

via:目次
iOS9となった今でも使えるテクニックが結構あったので、役に立ちそうなトピックに付箋をしたらいつの間にか付箋だらけ。

各フレームワークのリファレンスを読むのがめんどくさいんだけど、手っ取り早くあの機能を使いたいと言った時に、ものすごく便利。

ただ、目次を読んでわかるように具体的なレシピが書かれていないので、どんな技があるのがわからない。
せめて、目次にどんなのがあるか掲載すればいいのになーっと思ってしまったのだが、どうだろうか?

ちなみに、役に立ちそうなレシピ(一部)
実機とシミュレータで動作を切り替える
pragmaマークやコメントを活用する
ユニークなファイル名を生成する
アプリケーションの終了を検知する
NSArrayをランダムに並び替える
文字列からMD5を取得する
Transition Animationを途中で止める
UIViewの内容をUIImageに変換する
CoreGraphicsでグラデーション付きのボタンを作る
拡大縮小可能な画像ビューア
近接センサーを使う
方位を取得する
ネットワークの接続状況を判定する

2015/10/17

[iOS][Xcode][Objective-C]cocoapodsの警告がとれた件

先日、cocoapodsの警告がでてしまうことを書きましたが、どうやら、昨日試した、gemのアップデートで警告をとることができました。

なので、OS X El Capitan‎でXcode7を使っている方は、gemのアップデートをお勧めします。