2012年4月23日月曜日

[iOS]directory not found for option

directory not found for optionのエラーが発生した時

プロジェクト>ターゲット>Build Settingを開く
検索メニューdirectory not found for optionあとの表示されるライブラリを選択
ライブラリパスを削除

参考
‘ld: warning: directory not found for option’ while building iPhone app with Xcode 4

2012年4月18日水曜日

[iOS]UISearchBarキーボードボタンの"search"を"done"にする


stackoverflow.comから引用

//cSearchBarの持っているサブビューを取得
for (UIView *searchBarSubview in [cSearchBar subviews]) {
  //protocolがUITextInputTraits=キー入力関係のオブジェクトを判定
  if ([searchBarSubview conformsToProtocol:@protocol(UITextInputTraits)]) {
    @try {
      //UITextInputTraitsのオブジェクト、ここでは「検索」ボタンになるので
      //UIReturnKeyDone=完了に変更
      [(UITextField *)searchBarSubview setReturnKeyType:UIReturnKeyDone];
    }
    @catch (NSException * e) {       
      //例外処理
    }
  }
}

ただコレだとUISearchBarのキーボードに「検索」ボタン以外がある時も「完了」ボタンに変わってしまうはず。
他言語キーボードでの不具合とかありそうだな。

2012年4月17日火曜日

[AndroidSDK]Unable to resolve superclass of MyClass

Android ADT17(2012/03/21Update)にアップデート後に以下のエラーが発生した。

Unable to resolve superclass of MyClass

MyClassはxxx.jarの中に入っているんだけど見えないというエラー。

解決方法は
プロジェクト直下(gen、binと同じフォルダ)にlibsフォルダを作成
libsフォルダにxxx.jarを配置後に再度パスを貼り直し

ADT17からlibsフォルダは必須のようだ

2012年4月13日金曜日

[iOS]executeFetchRequestを使用した検索方法

    NSString *foo = @"hoge";
    NSString *bar = @"huga";
    
    //Coredate検索
    NSFetchRequest *request = [[NSFetchRequestalloc] init];
    //検索先entityを設定
    NSEntityDescription *entity = [NSEntityDescriptionentityForName:@"Card"
                                              inManagedObjectContext:managedObjectContext_];
    [request setEntity: entity];
    //検索条件を設定
    NSString *predicateCommand = [NSStringstringWithFormat:@"foo MATCHES '%@' and bar CONTAINS '%@' and isHoge == YES", foo, bar];
    NSPredicate *predicate = [NSPredicatepredicateWithFormat:predicateCommand];
    [request setPredicate: predicate];
    //fetch開始
    NSArray *fetchedObjects = [[selfmanagedObjectContext] executeFetchRequest:request
                                                                         error:nil];
    
    if ([fetchedObjects count]) {
        NSManagedObject *managedObject;
        for (managedObject in fetchedObjects) {
            //managedObjectを削除
            NSString *data = [managedObject valueForKey:@"data"];
        }
        
    } else {
        //No result
    }

2012年4月7日土曜日

[iOS] NSFetchedResultsControllerに検索結果があるか取得する

わざわざコード書いているけどNSFetchedResultsControllerに検索結果取得メソッドぐらいあるはず、、、なので苦肉の策


bool isNoResult = false;
int count = [[self.fetchedResultsController sectionscount];

if (count == 1) {
   id <NSFetchedResultsSectionInfo> sectionInfo = [[self.fetchedResultsController sectionslastObject];
    TRACE("sectionInfo %d", [sectionInfo numberOfObjects])
    if ([sectionInfo numberOfObjects] == 0) {
         //取得が0である
         isNoResult = true;
    }
}