61. 警告「else のぶら下がりを避けるための明示的な中括弧」
いわゆる「危険な else」は、次のようなコードです。 a が 10 に等しいかどうかに関係なく、if の実行後に a に値 100 を割り当てる必要がありますか、それとも else 句で (つまり、a が 10 に等しくない場合にのみ) a に値 100 を割り当てますか? )?
前者の場合、正しい書き方は次のようになります:
f(a== 10) printf("TEN"); else printf("NOT TEN"); a = 100;
63. 'NSURL' の Novisible @interface はセレクター 'query' を宣言します
iOS6 では、このメソッドは廃止されました。代わりに NSURL+Parameters を使用してください。
64.certificateidentity 'iphone distribution' が複数回表示されます
これは、コンパイルが成功する前に、キーチェーン内の重複した証明書を削除する必要があります。ただし、Xcode を再起動すると、以前に削除した証明書が戻っていることがわかります。ただし、Xcode を再起動すると、Xcode 内の証明書がキーチェーンにインポートされるため、キーチェーン内の重複した証明書を削除するだけでは効果がありません。
多くの学生が Xcode のこのバグにうんざりしていると思いますが、キーチェーンから証明書を繰り返し (しかし無駄に) 削除する以外に方法はありません。実際、Xcode だけを責めることはできませんが、「iPhone 構成ユーティリティ ツール」も関係しています。
Xcode 内のこれらの「残りの」証明書は、通常の形式では存在しません。 「iPhone 構成ユーティリティ」をインストールすると、これらの証明書は実際には /Users/km-cn/Library/MobileDevice/Applications/ ディレクトリの .app ファイルに存在します。これらの .app は実際には「iPhone 構成ユーティリティ」です。 「アプリケーション」内のアプリ。 Finder の「パッケージの内容を表示」を使用して、.app を表示できます。 「embedded.mobileprovision」という名前のファイルの 1 つは、「残りの」重複証明書です。これらの .app を 1 つずつ削除することも、ディレクトリ内のすべての .app を単純に削除することもできます (いずれにしても、プロジェクト ファイルが存在する限り、いつでもこれらの .app をコンパイルして「iPhone 構成ユーティリティ」にインポートできます)。 。最後に、Orgnizer で重複した証明書を削除し、Xcode を再起動します。
65. 現在の設定「com.ydtf.dlt」と一致しないアプリケーション識別子「com.ydtf.*」
ご覧のとおり、これら 2 つのアプリケーション ID は確実に一致します (* はワイルドカード文字を表します)。しかし、この不可解なエラーが原因でコンパイルができなくなります。これは間違いなく Xcode の別のバグです。まず CodeSigning を変更してコード署名、ビルドを行わないようにし、次に正しい署名ビルドに変更して戻します。
66. 実行可能ファイルの署名に使用された ID は無効になりました。
以前の署名の問題により、アーカイブできません。解決策については、質問 65 を参照してください。
67. presentModalViewController を使用して iPad のポップアップ ウィンドウのサイズを設定します
if(a== 10) { printf("TEN"); }else{ printf("NOT TEN"); } a= 100; 如果是后者,正确的写法应该是: if(a== 10) { printf("TEN"); }else{ printf("NOT TEN"); a = 100; }
iPadではアクションシートがポップオーバーモードで表示されます。 cancelButton はデフォルトでは表示されません (SDK は、cancelButton の代わりにポップオーバーの外側の領域を使用します。ユーザーがポップオーバーの外側の領域をクリックする限り、キャンセル ボタンをクリックするのと同じです)。 ActionSheet を
TestViewController*testVC = [[TestViewController alloc] initWithNibName:@"TestViewController"bundle:nil]; testVC.modalPresentationStyle= UIModalPresentationFormSheet; testVC.modalTransitionStyle= UIModalTransitionStyleCrossDissolve; [selfpresentModalViewController:testVC animated:YES]; testVC.view.superview.frame= CGRectMake(0, 0, 649, 397);//it's important to do this afterpresentModalViewController testVC.view.superview.center = self.view.center;
UIActionSheet* sheet=[[UIActionSheet alloc]initWithTitle:nil delegate:self cancelButtonTitle:@"cancel" destructiveButtonTitle:@"ok" otherButtonTitles:nil];
iPad では、アクションシートの矢印の方向を変更できる API が SDK に提供されていません。矢印の表示方向はシステムが自動的に決定します。ただし、showFromRect の最初のパラメータを使用して矢印の方向を変更できます:
UIActionSheet* sheet=[[UIActionSheet alloc]initWithTitle:nil delegate:self cancelButtonTitle:nil destructiveButtonTitle:nil otherButtonTitles:@"cancel",@"ok",nil]; // sheet.cancelButtonIndex=0; sheet.destructiveButtonIndex=1;
69. setShowAccurateProgress=YES は ASINetworkQueue では機能しません。
networkQueue.showAccurateProgress= YES の前に request.showAccurateProgress= YES を追加します。そうしないと、showAccurateProgress が有効になりません。サンプルコード:
equest.showAccurateProgress=YES; networkQueue.showAccurateProgress=YES; [networkQueue setSuspended:YES]; [networkQueue addOperation:request]; networkQueue.uploadProgressDelegate=self; [networkQueue go];
此外,由于 CFNework 中的一个 Bug,对于小于128K的数据,无法跟踪其上传/下载的精确进度。
70、如何设置 UIWebView 背景色为透明?
在IB中设置 UIWebView 的 Background 属性为 Clear Color 并不能使其背景透明。要达到这个目的,你需要使用以下两句:
[webView setBackgroundColor:[UIColor clearColor]];[webView setOpaque:NO];
以上就是iOS 开发百问(6)的内容,更多相关内容请关注PHP中文网(www.php.cn)!