iOS 開発に関する質問 (9)
101. コンパイル エラー: ld: -lPods のライブラリが見つかりません
このエラーは、プロジェクトで CocoaPods が使用されている場合 (通常はリリース中) によく発生します。
これは、ポッドのインストール後、cocoaPods が新しいワークスペースを作成するためです。プロジェクトを閉じて、再度開く必要があります。問題は解決された。
102. iOS の時刻が常に実時間より 8 時間遅いのはなぜですか
たとえば、北京時間「2014-4-4 22:00」(文字列) は NSDate に変換する必要があります。文字列の NSDate への変換は、通常、NSDateFormatter を通じて実行されます。 iOS では、NSDate は GMT 時間で保存されるため、NSDateFormatter は文字列の現在のタイム ゾーンの現地時間を自動的に処理します。つまり、変換された北京時間 (文字列 "2014-4-4 22:00") を GMT に変換します。時刻 (「2014-4-4 14:00」)。この NSDate (longlong、1970 年からの秒数またはミリ秒数) をサーバーに直接渡すと、サーバーはこの時間を北京時間 (実際には GMT 時間) として使用するため、時差は 8 時間になります。
正しいアプローチは、この NSDate に基づいて時差を追加することです。時差を計算するには、現在のタイムゾーンを知る必要があります。 [NSTimeZonesystemTimeZone] は、現在のタイム ゾーン (イースト 8 ゾーン) を取得し、秒からGMTForDate: メソッドを使用して、このタイム ゾーン (イースト 8 ゾーン) の時差 (秒単位) を取得できます。コードは次のとおりです:
NSDateFormatter* df=[NSDateFormatter new]; // [dfsetLocale:[NSLocale currentLocale]]; df.dateFormat=@"yyyy-MM-dd HH:mm"; NSDate* date=[dfdateFromString:@"2014-4-4 22:00"]; NSTimeZone *zone =[NSTimeZone systemTimeZone]; NSInteger interval = [zonesecondsFromGMTForDate: date]; NSDate *localeDate =[date dateByAddingTimeInterval:interval]; NSLog(@"%@",localeDate);
103. UITableViewController でキーボード ポップアップ アニメーションを無効にする
TableViewController には、セル内の入力コントロールがソフト キーボードをポップアップさせるためのコードが組み込まれています。自動的に上にスクロールします。しかし、この機能は時々大きな問題を引き起こすことがあります。入力コントロールが見えない場所までスクロールされてしまうことがあります。フレームワークのコードを変更することはできないため、この場合は TableViewController (サブクラス化) の使用を諦め、代わりに一般的な UIViewController+UITableView を使用する必要があります。ただし、TableViewContrller を使用しなければならない場合もあります。たとえば、その静的セルを使用したい場合は、次の方法で解決できます。 UITableViewController サブクラスの viewWillAppear メソッドをオーバーライドして、親クラスの viewWillAppear 動作を無効にします。つまり、[superviewWillAppear:animated]:
-(void)viewWillAppear:(BOOL)animated{ // Override super method with don'tcall [super viewWillApper] }
104 を呼び出さないでください。どのような場合に NSCache を使用する必要がありますか? NSCache は、メモリ不足に基づいてキャッシュ オブジェクトの 1 つを自動的に解放します (たとえば、ビューが破棄された場合、またはビューが存在する場合)。キャッシュされたオブジェクトが多すぎます)。したがって、NSCache によってキャッシュされたオブジェクト (これらのオブジェクトなど) は、必要に応じてネットワークからダウンロードできるデータである必要があります。それ以外の場合は、NSCache を使用しないでください。オブジェクトはある時点で破棄されます。
したがって、NSCache を使用する場合は、取得したオブジェクトがキャッシュに存在しない場合は注意する必要があります:
-(CachedObject)getCachedObject:(id)key{ id* obj=[NSCacheObjectobjectForKey:key]; if (cb==nil) { obj=[[CachedObjectalloc]init]; // Recreate cached object …… } return obj; }
問題の説明:
デバッグ時に次のエラーが発生します。正常かもしれません):
ld: -lPods のライブラリが見つかりません
問題は Xcode5 です)。
解決策:
Pods プロジェクトのすべてのターゲットの下で、そのアーキテクチャがメイン プロジェクトと一致するように設定します。
106. 静的ライブラリでサポートされているアーキテクチャを確認する方法
「lipo -info static library file」コマンドを使用します。例:
lipo -info Unrar4iOS
その後、ターミナルに次のように表示されます:
fat ファイル内のアーキテクチャ: Unrar4iOS は、armv7 armv6 i386
107 です。プロジェクトに特定の静的ライブラリを導入すると、質問 105 で述べたように、アーカイブで「アーキテクチャ armv7s/arm64 の未定義のシンボル」エラーが発生します。質問 105 の解決策の使用に加えて、別の回避策があります。
まず静的ライブラリのアーキテクチャを確認してください (質問 106 を参照)。次に、静的ライブラリのアーキテクチャをサポートするようにスキームを変更します。次に、ビルド設定で Build Active ArchitectureOnly を変更し (選択したアーキテクチャのみをコンパイルします)、値を Yes に変更します。それからコンパイルします。
108. Autolayout では、UITableView の高さが正しくありません。
Autolayout では、ナビゲーション バーがある場合、ビュー上の UITableView は制約によって制限され、実行時の高さはナビゲーション バーのない高さにリセットされます。このとき、制約の影響を排除するために viewDidLayoutSubviews メソッドを実装する必要があります:
- (void)viewDidLayoutSubviews { _table.frame=CGRectMake(0,0,self.view.frame.size.width,self.view.frame.size.height); }
109 デフォルトの戻るボタンのタイトルを変更するには? ナビゲーションが次のとおりであるとします: A ビュー --> B ビュー
ビュー B の戻るボタンのタイトルを変更してビュー A に戻りたい場合は、ビュー A で次のコードを使用するだけです:
self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc]initWithTitle:@"返回" style:UIBarButtonItemStylePlain target:self action:nil]; B视图不用做任何操作。
110。は空のオブジェクトですが、nilでもnullでもありませんか? NSNullです。このオブジェクトを (po コマンドまたは NSLog を使用して) 出力すると、出力結果は "(null)" (nil オブジェクト) ではなく "
O-C コレクション オブジェクトでは null 値 (nil) の挿入が許可されておらず、NSNull は nil ではないため、コレクションが空である (リストの終わりを示す) ことを示すために NSNull オブジェクトが使用されます。また、nil とは異なり、NSNull にメッセージを送信すると例外が発生します。
NSNull には [NSNull null] という唯一のメソッドがあり、これを使用してオブジェクトが NSNull であるかどうかをテストできます:
BOOL isNSNull(id any){ return [any isEqual:[NSNullnull]]; }
以上就是iOS 开发百问(9)的内容,更多相关内容请关注PHP中文网(www.php.cn)!

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









毎年恒例の WWDC が終了し、間違いなく iOS18 がみんなの注目の的になっています。現在、多くのiPhoneユーザーがiOS18へのアップグレードを急いでいますが、さまざまなシステムバグが人々を不快にさせています。一部のブロガーは、「バグが非常に多い」ため、iOS18にアップグレードする場合は注意する必要があると述べています。このブロガーは、iPhoneがメインマシンの場合、最初のバージョンには多くのバグがあるため、iOS18にアップグレードしないことをお勧めすると述べています。また、現在発生しているいくつかのシステム バグについてもまとめました。 1. アイコン スタイルの切り替えが停止し、アイコンが表示されない場合があります。 2. 懐中電灯の幅のアニメーションが失われることがよくあります。 4. WeChat メッセージのプッシュに遅延が発生します。 10 秒。時々電話ができなくなり、画面が真っ暗になります。

手がかりを提出してくれたネチズンの Ji yingkesi、xxx_x、フライド トマト、テレンス、スパイシー チキン ドラムスティックに感謝します。 7 月 27 日のニュースによると、Apple は本日、開発者向けに iOS/iPadOS 18 Beta 4 アップデートを再リリースしました。内部バージョン番号は 22A5316j から 22A5316k にアップグレードされました。現時点では、2 つの Beta 4 バージョン アップデートの違いは不明です。登録された開発者は、「設定」アプリを開いて「ソフトウェア アップデート」セクションに入り、「ベータ アップデート」オプションをクリックして、iOS18/iPadOS18 開発者ベータ設定を切り替えてベータ バージョンを選択できます。ベータ版をダウンロードしてインストールするには、開発者アカウントに関連付けられた Apple ID が必要です。 iO 7 月 24 日の報道

7月31日のニュースによると、Appleは昨日(7月30日)プレスリリースを発行し、Swiftプログラミング言語で準同型暗号化を可能にする新しいオープンソースSwiftパッケージ(swift-homomorphic-encryption)のリリースを発表した。注: 準同型暗号 (HE) とは、暗号文の準同型演算特性を満たす暗号アルゴリズムを指します。つまり、データを準同型暗号化した後、暗号文に対して特定の計算を実行し、得られた暗号文の計算結果を同時に処理します。状態復号後の平文は、平文データに対して同じ計算を直接実行することと同等であり、データの「不可視性」が実現されます。準同型暗号技術は、基になる暗号化されていないデータを運用プロセスに漏らすことなく、暗号化データを計算できます。

更新: Saunders Tech は、EU 外の iPad に Fortnite と Epic Games Store をインストールする方法を説明するチュートリアルを YouTube チャンネルにアップロードしました (ビデオは下に埋め込まれています)。ただし、このプロセスには iO の特定のベータ版が必要なだけではありません。

6月1日のニュースによると、テクノロジーメディアAppleInsiderは本日ブログ投稿を公開し、AppleがiOS18システムの「Freeform」アプリケーション拡張機能の「Scenes」の新しいナビゲーション機能を開始し、オブジェクトの位置合わせの新しいオプションを追加すると述べた。 「Wubianji」アプリの紹介 まず、「Wubianji」アプリについて簡単に紹介します。このアプリは 2022 年にリリースされ、現在 iOS、iPadOS、macOS15、visionOS バージョンがリリースされています。 Apple の公式紹介文は次のとおりです。「Boundless Notes」は、インスピレーションを現実にするための優れたツールです。ほぼすべてのファイル タイプをサポートする柔軟なキャンバスで、プロジェクトをスケッチしたり、ムードボードをデザインしたり、ブレインストーミングを開始したりできます。 iCloud を使えば、すべてのボードを

[アップグレード チュートリアルに直接アクセスするには、ここをクリックしてください] 5 月 8 日のニュースによると、Apple は本日、iOS17.5RC アップデート (内部バージョン番号: 21F79) を iPhone ユーザーにプッシュしました。このアップデートは最後のリリースから 70 日後です。 iOS/iPadOS/watchOS/macOS 開発版とパブリックベータ版をアップグレードするにはどうすればよいですか? iOS/iPadOS17 開発者プレビュー版およびパブリック ベータ版をアップグレードするには、友人が共有したエクスペリエンスを参照できます: エクスペリエンス 投稿 1||エクスペリエンス 投稿 2||エクスペリエンス 投稿 3||エクスペリエンス 投稿 4。 iOS/iPadOS 16.4 Developer Preview Beta 1 からは、Apple Developer Program に登録する必要があります。登録後、システムの [設定] [ソフトウェア アップデート] を開き、アップグレード オプションを表示します。 iPhone または IP アドレスに注意してください。

ネチズンのおかげでスパイシーチキンレッグバーガー、ソフトメディアの新しい友達2092483、手書きの過去、DingHao、Xiaoxing_14、Wowotou Eat Big Kou、Feiying Q、ソフトメディアの新しい友達2168428、Slades、Aaron212、ハッピーリトルハリネズミ、リトルアール、小さな手がかり魚を食べるミルクキャット! [アップグレード チュートリアルに直接アクセスするには、ここをクリックしてください] 7 月 24 日のニュースによると、Apple は本日、iOS/iPadOS18 開発者プレビュー バージョン Beta4 アップデート (内部バージョン番号: 22A5316j) を iPhone および iPad ユーザーにプッシュしました。このアップデートは 15 日後です。最後のリリース。 Carplay 壁紙 Apple が CarPlay に壁紙を追加し、ライトモードとダークモードをカバーしています。その壁紙スタイルは iPhone に似ています。

実用的な共有... Apple が新しい iOS バージョンを発表し続ける中、多くの iPhone ユーザーはシステムをアップグレードするかどうかの選択に直面しています。最新のiOS17.5Beta3のリリースは、特にiPhone12ユーザーにとって、既存のiOS16を放棄して新しいベータ版を試すべきかどうか、議論する価値のある問題となっています。この記事では、実際の経験に基づいて、iPhone 12 を iOS 17.5 Beta 3 にアップグレードすることの長所と短所を分析し、大多数の Apple ファンに参考にしていただきます。まず第一に、ベータ版は通常、一定のリスクを負う開発者または早期採用者によって使用されることを明確にする必要があります。これは、正式版と比較して、ベータ版には以下の内容が含まれる可能性があることを意味します。
