タグ付けされた質問 「objective-c」

このタグは、Objective-C機能に関する質問または言語のコードに依存する質問でのみ使用する必要があります。タグ[cocoa]および[cocoa-touch]は、Appleのフレームワークまたはクラスについて質問するために使用する必要があります。これらのプラットフォームに固有の問題には、関連タグ[ios]、[macos]、[apple-watch]、および[tvos]を使用します。

12
iOS画像の向きが奇妙な動作をする
過去数週間、私はobjective-cで画像を扱い、多くの奇妙な振る舞いに気づいてきました。まず、他の多くの人と同じように、カメラで撮った(または他の誰かのカメラで撮ってMMSで撮った)画像が90度回転するという問題がありました。なぜ世界でこれが起こっているのかはわからなかったので(私の質問)、安価な回避策を考え出すことができました。 今回の私の質問は、なぜこれが起こっているのですか?Appleが画像を回転させるのはなぜですか?カメラの表を上にして写真を撮るとき、上記のコードを実行しない限り、写真を保存すると回転して保存されます。今、私の回避策は数日前まで大丈夫でした。 私のアプリケーションは、画像の個々のピクセル、特にPNGのアルファチャネルを変更します(そのため、私のシナリオでは、JPEG変換がウィンドウからスローされます)。数日前に、回避策コードのおかげで画像がアプリに正しく表示されているにもかかわらず、アルゴリズムが画像の個々のピクセルを変更すると、画像が回転しているように見えることに気付きました。したがって、画像の上部にあるピクセルを変更する代わりに、画像の側面にあるピクセルを変更します(回転する必要があると考えているため)。メモリ内で画像を回転させる方法がわかりません。理想的には、imageOrientationフラグをすべて一掃することをお勧めします。 これも私を困惑させている何かです...私が写真を撮るとき、これimageOrientationは3に設定されています。私の回避策コードはこれを実現し、ユーザーが気付かないようにそれを反転するのに十分スマートです。また、ライブラリに画像を保存するための私のコードは、それを反転させ、これを実現し、その後、それが適切にカメラロールに表示されますので、それを保存します。 そのコードは次のようになります。 NSData* pngdata = UIImagePNGRepresentation (self.workingImage); //PNG wrap UIImage* img = [self rotateImageAppropriately:[UIImage imageWithData:pngdata]]; UIImageWriteToSavedPhotosAlbum(img, nil, nil, nil); この新しく保存された画像をアプリに読み込むと、imageOrientation0が表示されます。つまり、回転回避策を実行する必要さえありません(注:カメラで撮影した画像ではなく、インターネットから画像を読み込む場合) 、imageOrientationは常に0であり、完全な動作になります)。何らかの理由で、私の保存コードはこれを一掃するようですimageOrientationフラグ。ユーザーが写真を撮ってアプリに追加するとすぐに、そのコードを盗んでimageOrientationを消去することを望んでいましたが、機能しないようです。んUIImageWriteToSavedPhotosAlbumで何か特別な操作を行いますかimageOrientation? この問題の最善の修正は、吹き飛ばすことです imageOrientation、ユーザーが画像の撮影たらすぐに。私はAppleが理由でローテーション動作を行ったと思いますよね?これはAppleの欠陥であると数人の人が提案しました。 (...まだ迷っていない場合...注2:横向きの写真を撮ると、インターネットから撮った写真と同じように、すべてが完璧に機能しているように見えます) 編集: ここに、いくつかの画像とシナリオが実際にどのように見えるかを示します。これまでのコメントに基づくと、この奇妙な動作は単なるiPhoneの動作ではないようです。 これは私が携帯電話で撮った写真の写真です(正しい向きに注意してください)。写真をスナップしたときの携帯電話とまったく同じように表示されます。 自分にメールした後のGmailの画像は次のとおりです(Gmailで適切に処理されているようです)。 ウィンドウにサムネイルとして表示される画像は次のとおりです(適切に処理されているようには見えません)。 Windowsフォトビューアーで開いたときの実際の画像は次のとおりです(まだ適切に処理されていません)。 この質問に対するすべてのコメントの後に、私が考えているのはこれです... iPhoneは画像を取得し、「これを適切に表示するには、90度回転させる必要があります」と言います。この情報はEXIFデータに含まれます。(なぜデフォルトでは真っ直ぐな垂直ではなく90度回転する必要があるのか​​、私にはわかりません)。ここから、GmailはそのEXIFデータを読み取って分析し、適切に表示するのに十分スマートです。ただし、Windowsは、EXIFデータを読み取るほどスマートではないため、画像が正しく表示されません。私の仮定は正しいですか?

27
iOS7のUITextfield leftView / rightViewパディング
iOS7のUITextFieldのleftViewビューとrightViewビューは、テキストフィールドの境界に非常に近くなっています。 それらのアイテムに(水平)パディングを追加するにはどうすればよいですか? フレームを変更してみましたが、うまくいきませんでした uint padding = 10;//padding for iOS7 UIImageView * iconImageView = [[UIImageView alloc] initWithImage:iconImage]; iconImageView.frame = CGRectMake(0 + padding, 0, 16, 16); textField.leftView = iconImageView; UITextBorderStyleNoneを使用したUITextFieldのこのパディングのように、テキストフィールドのテキストにパディングを追加することに興味がないことに注意してください。


16
iOS 7-デフォルトのビューコントローラーのインスタンス化に失敗する
新しく作成したアプリでXcode 5を使用していて、作成しただけで実行ボタンを押してクリックすると、プロジェクトがビルドされますが、iOSシミュレーターに表示されず、次のメッセージが表示されます。 Failed to instantiate the default view controller for UIMainStoryboardFile 'Main' - perhaps the designated entry point is not set? もちろん、私はそれについてグーグルで調べましたが、誰もがこれが起こっていることを指摘しています。なぜなら、XCodeはどのView Controllerが初期のものかまだわからないからです。しかし、奇妙なことに、私はアプリをページベースのアプリ(シングルビューおよびタブ付きアプリオプションも試してみました)として作成し、XCodeはすでにストーリーボードを定義しています。 また、プロジェクトのメインインターフェースオプションに移動すると、ストーリーボード(Xcode自体で「Main」という名前)が設定され、ストーリーボードで、ビューコントローラーが「初期ビューコントローラー」として設定されます。 なにが問題ですか?

18
文字列が数値かどうかを調べる
文字列が数字のみで構成されているかどうかを確認するにはどうすればよいですか。文字列から部分文字列を取り出して、それが数値部分文字列かどうかを確認したいと思います。 NSString *newString = [myString substringWithRange:NSMakeRange(2,3)];


7
URLWithString:nilを返します
それは非常に簡単かもしれませんが、なぜURLWithString:ここでnilを返すのかはわかりません。 //localisationName is a arbitrary string here NSString* webName = [localisationName stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; NSString* stringURL = [NSString stringWithFormat:@"http://maps.google.com/maps/geo?q=%@,Montréal,Communauté-Urbaine-de-Montréal,Québec,Canadae&output=csv&oe=utf8&sensor=false&key=", webName]; NSURL* url = [NSURL URLWithString:stringURL];


8
Swiftでの述語の使用
私の最初のアプリのチュートリアル(Swiftの学習)を進めています。http: //www.appcoda.com/search-bar-tutorial-ios7/ 私はこの部分で立ち往生しています(Objective-Cコード): - (void)filterContentForSearchText:(NSString*)searchText scope:(NSString*)scope { NSPredicate *resultPredicate = [NSPredicate predicateWithFormat:@"name contains[c] %@", searchText]; searchResults = [recipes filteredArrayUsingPredicate:resultPredicate]; } 誰かがSwiftでNSPredicateの同等物を作成する方法をアドバイスできますか?

4
Objective-Cで実行時にセレクターを動的に作成するにはどうすればよいですか?
をSEL使用してコンパイル時に作成する方法を知っています@selector(MyMethodName:)が、私がやりたいことは、から動的にセレクターを作成することですNSString。これは可能ですか? 私は何ができますか: SEL selector = @selector(doWork:); [myobj respondsToSelector:selector]; 私がやりたいこと:(疑似コード、これは明らかに動作しません) SEL selector = selectorFromString(@"doWork"); [myobj respondsToSelector:selector]; 私はApple APIのドキュメントを検索してきましたが、コンパイル時の@selector(myTarget:)構文に依存しない方法を見つけていません。

7
Objective-Cの読み取り専用プロパティ?
私は自分のインターフェイスで次のように読み取り専用プロパティを宣言しました: @property (readonly, nonatomic, copy) NSString* eventDomain; プロパティを誤解しているかもしれませんが、として宣言するとreadonly、実装(.m)ファイル内で生成されたセッターを使用できますが、外部エンティティは値を変更できないと思いました。このSOの質問は、それが起こるべきことだと言っています。それが私が求めている行動です。ただし、標準のセッターまたはドット構文を使用しeventDomainてinitメソッド内に設定しようとすると、unrecognized selector sent to instance.エラーが発生します。もちろん私は@synthesizeその物件を所有しています。次のように使用しようとしています: // inside one of my init methods [self setEventDomain:@"someString"]; // unrecognized selector sent to instance error だから私readonlyはプロパティの宣言を誤解していますか?または何か他のことが起こっていますか?


8
iPhoneのJSONとコアデータ
コアデータオブジェクトグラフがあります(多対多の関係でリンクされた2つのエンティティで構成されています)。 私は、比較的経験の浅いiPhone開発者として、誰かがアプローチを推奨できるかどうか、そしてiPhoneに適切なJSON実装を提供できるかどうかに興味を持っていました。 コアデータレコードをJSONストリングに変換します(エンティティ間の関係を維持します)。そして JSON文字列をコアデータオブジェクトに変換します(これもエンティティ間の関係を維持します)。 この点について、チュートリアル/コードのサンプルを検索して失敗したため、支援をいただければ幸いです。



弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.