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

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

4
__weak参照と__block参照の違いは何ですか?
Xcodeのドキュメントを読んでいますが、これが私を困惑させるものです。 __block typeof(self) tmpSelf = self; [self methodThatTakesABlock:^ { [tmpSelf doSomething]; }]; 以下はドキュメントからコピーされたものです。 ブロックは、キャプチャする変数への強力な参照を形成します。selfブロック内で使用する場合 、ブロックはへの強い参照を形成するため、ブロックへの強い参照もselfある場合 self(通常はそうなります)、強い参照サイクルが発生します。サイクルを回避する__blockには、上記の例のように、ブロックの外側に自分自身への弱い(または)参照を作成する必要があります。 「弱い(または__block)」の意味がわかりませんか? です __block typeof(self) tmpSelf = self; そして __weak typeof(self) tmpSelf = self; ここでもまったく同じですか? ドキュメントで別の部分を見つけました: 注:ガベージコレクション環境では、変数に__weakと__block修飾子の両方を適用すると 、ブロックはそれが存続することを保証しません。 だから、私は完全に困惑しています。

3
強いプロパティ属性とは何ですか
私は開発者向けにXcodeベータ版を使用していますが、微妙な違いに気づいています。その中には、宣言されたプロパティの新しい属性があります。 @property(strong)IBOutlet NSArrayController *arrayControl; 私の質問は:強い属性はどういう意味ですか?古いものに取って代わるのでしょうか、それともまったく新しいものでしょうか?グーグルと開発者向けドキュメントを検索しましたが、何も見つかりませんでした。それが何であるかを知るまで、私はそれを使うのをためらっています。 前もって感謝します


9
iOS UISearchBarで(入力速度に基づいて)検索を調整する方法は?
ローカルCoreDataとリモートAPIの両方からの検索結果を表示するために使用されるUISearchDisplayControllerのUISearchBar部分があります。私が達成したいのは、リモートAPIでの検索の「遅延」です。現在、ユーザーが入力した文字ごとに、リクエストが送信されます。ただし、ユーザーが特に速く入力する場合、多くのリクエストを送信することは意味がありません。入力が停止するまで待つと役立ちます。それを達成する方法はありますか? ドキュメントを読むと、ユーザーが明示的に検索をタップするまで待つことをお勧めしますが、私の場合は理想的ではありません。 パフォーマンスの問題。検索操作を非常に迅速に実行できる場合は、デリゲートオブジェクトにsearchBar:textDidChange:メソッドを実装することで、ユーザーが入力しているときに検索結果を更新できます。ただし、検索操作に時間がかかる場合は、ユーザーが[検索]ボタンをタップするまで待ってから、searchBarSearchButtonClicked:メソッドで検索を開始する必要があります。メインスレッドのブロックを回避するために、常にバックグラウンドスレッドで検索操作を実行してください。これにより、検索の実行中にアプリがユーザーに応答し続け、ユーザーエクスペリエンスが向上します。 APIに多くのリクエストを送信することは、ローカルパフォーマンスの問題ではなく、リモートサーバーでのリクエスト率が高すぎることを回避することだけです。 ありがとう

5
IOS13でこのフォント関連のコアテキスト警告の原因を見つけるにはどうすればよいですか?
アプリのアップデートに取り組んでいますが、IOS13のXcode 11.2でアプリを実行すると、ログに大量の警告が表示されます。 CoreText注:クライアントは名前「.SFUI-Regular」を要求しました。意図したフォントではなくTimesNewRomanPSMTを取得します。すべてのシステムUIフォントアクセスは、CTFontCreateUIFontForLanguage()または+ [UIFont systemFontOfSize:]などの適切なAPIを介して行われる必要があります。 私は少し掘り下げて、WWDCからのこの引用を見つけました: 多くのWWDCセッションで言及されているように、ドットプレフィックス付きのフォント名は直接使用されません。 私自身、ほぼ独占的にIBとnibsを使用してテキストフィールドなどのフォントを設定しています。コードのどこにも「SFUI-Regular」への参照がないため、これらの警告の実際の理由を見つける方法がわかりません(私はログのこれらの20-30行のようなもの)。 警告がどこから来ているのかを見つける方法と、それを修正する方法についてのヒントはありますか?

1
メソッドswizzlingを使用して、すべてのUIViewControllerインスタンスのiOS13でmodalPresentationStyleを一度に変更します。
[Q&A] iOS 13でグローバルに値を変更UIViewController.modalPresentationStyleして、iOS 12(またはそれ以前)と同じように動作させることはできますか? どうして? iOS 13 SDKでは、UIViewController.modalPresentationStyleプロパティのデフォルト値がからに変更されUIModalPresentationFullScreenましUIModalPresentationAutomaticた。私の知る限り、UIModalPresentationPageSheetiOSデバイスまたは少なくともiPhone では解決されています。 私が数年取り組んできたプロジェクトはかなり大きくなったので、ビューコントローラが表示される場所は数十か所あります。新しいプレゼンテーションスタイルは、常にアプリのデザインと一致しているわけではなく、UIが崩れる場合があります。、我々は変更することdeciced理由であるUIViewController.modalPresentationStyleに戻ってUIModalPresentationFullScreen、それがあったように、プリiOS13 SDKのバージョンです。 しかし、コントローラーが提示されているすべての場所でviewController.modalPresentationStyle = UIModalPresentationFullScreen呼び出す前に追加することpresentViewController:animated:completion:は、やり過ぎのように見えました。さらに、そのときはもっと深刻な問題に対処する必要がありました。そのため、当面、または少なくともデザインを更新してすべてのUIの問題を修正するまで、メソッドスウィズリングアプローチを採用することにしました。 私の答えには実用的な解決策が示されていますが、そのようなアプローチの欠点や結果が何かということを教えてくれるフィードバックをいただければ幸いです。
11 ios  objective-c  swift  ios13 

5
アプリがバックグラウンドにあるときにiOS 13.3でdidReceiveRemoteNotificationが呼び出されない
頭を叩いてる。プッシュ通知を実装しています。すべてが正常に機能しています(プッシュが受信され、バッジが更新されます)が、iOS 13.3では、アプリがバックグラウンドにあるときに、メソッドapplication(_:didReceiveRemoteNotification:fetchCompletionHandler :)が呼び出されません。アプリがフォアグラウンドにあるか、iOS 12デバイスを使用している場合、メソッドが呼び出されます。以下の方法でプッシュ通知に登録します。 [[UNUserNotificationCenter currentNotificationCenter] requestAuthorizationWithOptions:(UNAuthorizationOptionBadge | UNAuthorizationOptionSound | UNAuthorizationOptionAlert) completionHandler:^(BOOL granted, NSError * _Nullable error) { if (granted) { dispatch_async(dispatch_get_main_queue(), ^{ [[UIApplication sharedApplication] registerForRemoteNotifications]; }); } }]; ペイロードは次のように設定されています {"aps": { "badge": 10, "alert": "test", "content-available": 1 }} すべてのバリエーションでアプリの機能として「リモート通知」と「バックグラウンド処理」を追加してみました(「リモート通知」/「バックグラウンド処理」のみ。これらの機能はなく、両方を有効にしています)。UNUserNotificationCenterのデリゲートを設定しましたが、成功しませんでした。それに応じてヘッダーを設定します。 curl -v \ -H 'apns-priority: 4' \ -H 'apns-topic: xx.xxxxx.xxxx' …

1
-[UIThreadSafeNode canPerformAction:withSender:]:認識されないセレクターがインスタンスに送信されました
iOSアプリでこのクラッシュに直面しています。 Fatal Exception: NSInvalidArgumentException 0 CoreFoundation 0x1b9079c30 __exceptionPreprocess 1 libobjc.A.dylib 0x1b8d940c8 objc_exception_throw 2 CoreFoundation 0x1b8f77fc0 -[NSOrderedSet initWithSet:copyItems:] 3 CoreFoundation 0x1b907e3d4 ___forwarding___ 4 CoreFoundation 0x1b9080570 _CF_forwarding_prep_0 5 UIKitCore 0x1bcf33444 -[UIKeyboardImpl deleteForwardAndNotify:] 6 UIKitCore 0x1bcf39154 __57-[UIKeyboardImpl acceptPredictiveInput:executionContext:]_block_invoke 7 UIKitCore 0x1bcf5b0c8 -[UIKeyboardTaskExecutionContext returnExecutionToParentWithInfo:] 8 UIKitCore 0x1bcf366ec __100-[UIKeyboardImpl addWordTerminator:afterSpace:afterAcceptingCandidate:elapsedTime:executionContext:]_block_invoke 9 UIKitCore 0x1bcf5b0c8 -[UIKeyboardTaskExecutionContext returnExecutionToParentWithInfo:] …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.