ホームページ  >  記事  >  バックエンド開発  >  iOS 開発に関する質問 (5)

iOS 開発に関する質問 (5)

黄舟
黄舟オリジナル
2017-01-20 09:34:331347ブラウズ

42. 警告: 出力ファイル
target の Multiplebuild コマンドは、重複した名前を持つリソースを参照しています
現在のターゲットを見つけて展開し、CopyBundle Resources 列を見つけて、重複した名前を持つリソースを見つけて、不要なリソースを削除してください。
43. 署名エラー: プロビジョニング プロファイルが見つかりません
Xcode で証明書を更新してからプログラムを再コンパイルすると、実機のデバッグ中に常に「コード署名エラー: プロビジョニング プロファイル 'XXXX' が見つかりません」が表示されます。 . あまり怒ることはありません。この問題をうまく解決できるように、以下の解決策について話しましょう。
1. プロジェクトを閉じ、プロジェクト ファイル XXXX.xcodeproj を見つけ、ファイルを右クリックして [パッケージの内容を表示] を選択します。新しいファインダーが開きます。注: 実際、XXXX.xcodeproj はフォルダーです。ここで新しく開いた Finder 内の 3 つのファイルは、XXXX.xcodeproj フォルダー内のファイルです。
2. 新しく開いた Finder で project.pbxproj を見つけて開きます。以前の証明書のエンコード情報はここで見つけてください。以前に報告したエラー メッセージは次のとおりでした:
CodeSign エラー: プロビジョニング プロファイル '37D44E7F-0339-4277-9A82-C146A944CD46' なので、検索メソッドを使用して 37D44E7F-0339-4277-9A82-C146A944CD46 を含むすべての行を見つけて削除しました彼ら 。
3. プロジェクトを保存して再起動し、再度コンパイルします。それで大丈夫です。
44. Xcode 4.6 にアップグレードすると、arc4random_uniform が使用できなくなります
プロジェクトを Xcode4.6 にアップグレードすると、コンパイル エラーが発生します:

Useof undeclared identifier 'arc4random_uniform'; did you mean 'arc4random_stir'?

SDK 6.1 は 'arc4random_uniform' をサポートしていないようですが、問題はその後解決されますこれを「arc4random」に置き換えます。
45. Xcode4.6 にアップグレードした後、コンパイル エラーが発生しました: アーキテクチャ x86_64 の未定義シンボル: "_OBJC_CLASS_$_NSMutableOrderedSet"
ビルド設定で、"Implicitly link Objective-C Runtime Support" を NO に設定すると、問題は解決します。
46. Xcode4.6 をアップグレードした後、C99 では関数 'sleep' が無効です
#importf55648144b4a1c5cce7ad2f6519be0f3 という警告が表示されましたが、後で解決されました。 Xcode4.6 にアップグレードした後、stdlib.h や unistd.h などの多くのヘッダー ファイルはデフォルトでは自動的にインポートされません。
47. コンパイル エラー: 6.0 より前の iOS バージョンでの自動レイアウト
この問題は、Xcode 4.6 でターゲット 4.0 アプリをコンパイルするときに発生します (実機のデバッグ、デバイスは 3GS、iOS 6.1.3 にアップグレード)。エラーを報告した .xib ファイルを見つけて、[ドキュメント] パネルで [UseAutolayout] (以下の図を参照) を無効にします。

48. ボタンのタイトルラベルのテキストの配置を設定するにはどうすればよいですか?
content水平Alignmentプロパティを設定します:
emailBtn.content水平Alignment= UIControlContent水平AlignmentLeft; または、contentEdgeInsetを使用してテキストの余白を調整します(0は配置なしを意味します):
emailBtn.contentEdgeInsets= UIEdgeInsetsMake(0, 10, 0, 0); または両方で使用されます。と組み合わせて。
49. エラー: errorDomain=UA_ASIHTTPRequestErrorDomain Code=8 "ファイルの移動に失敗しました
ファイルがダウンロードされた後、ファイルが tmp の場所からキャッシュの場所に正常に移動される前にエラーが発生します
このエラーは、ファイルがダウンロードされたときに発生しますただし、ドキュメント ディレクトリに移動する前には実行できません (iExplorer を使用して、この問題を解決できます)。
50 「プリコンパイルされたヘッダーがビルドされてから変更されました。」

ヘッダーをプリコンパイルするときにファイルが変更されました。
51 エラー アプリケーションの実行権限を変更できませんでした
同じ AppID を持つ 2 つの異なるアプリケーションをインストールできません。通常、Xcode で [プロジェクト] -> [プロファイル] コマンドを実行すると問題が発生します。これは、一般に、実際のデバイスのデバッグ中にデバッグ アプリケーションが iPhone にインストールされるためです。 2 つのプログラムの違いは、当然ながら AppID が同じであるため、上記のエラーが発生することです。 解決策: まず iPhone 上でプログラムを削除してから、プロジェクト -> プロファイル コマンドを実行します。
52、計測器エラー: 以下に示すように、Target の実行に失敗しました。



点击菜单栏Scheme 的左下角,选择“Edit Scheme...”,在弹出窗口左侧边栏选中“Profile xxx.app”,将其“BuildConfiguration”从“Release”修改为 “Debug”。
53、查看指针所指向的对象
如果知道地址,可以用GDB命令打印该地址所代表的对象,例如:
po 0x1fba2e20
如果该指针不是一个对象,用:
p0x1fba2e20
54、Xcode 打包时 skip install的问题
总结:在自身工程里面需要将skipinstall 设置为NO, 在引入其他静态库文件的工程中skip install 设置为YES,否则在 Orgnizer 中无法发布你的程序。
-主App是需要部署的,所以不要将Skip Install设为YES, 只需要改依赖项目。
55、错误: Pushinga navigation controller is not supported 
SDK不允许直接在一个 NavigationController 中 push 一个 NavigationController。你可以用这句代码代替:
[self.navigationControllerpushViewController:nc.topViewController animated:YES];
56、为什么当用户点击Tab bar 上的按钮,总是会显示所选 NavigationController 的 rootViewController?
你可以为TabBarController 指定一个delegate 属性,并在 delegate 对象中实现 UITabBarControllerDelegate 委托:

#pragma mark TabBarController Delegate
- (BOOL)tabBarController:(UITabBarController *)tabBarControllershouldSelectViewController:(UIViewController *)viewController {
UIViewController *tbSelectedController= tabBarController.selectedViewController;
if ([tbSelectedController isEqual:viewController]) {
return NO;
}
return YES;
}

57、使用setTitle 不能刷新 NavigationBar 的标题文本
有时候使用ViewController的 setTitle 方法并不能刷新 NavigationBar 的 title文本。极大的可能是你使用类似的代码定制了 titleView:

UILabel* label = [[[UILabel alloc] init] autorelease];
label.backgroundColor=[UIColor clearColor];
label.text = self.title;
label.font = [UIFont systemFontOfSize: 20];
……
[self.navigationItem setTitleView: label];

如果这样,你需要用同样的代码重新定制titleView,才能刷新 NavigationBar title。或者,使用默认的 TitleView 而不要去定制它。
58、 nested push animation can result in corrupted navigation bar……
如果你在代码中连续多次(两次以上)pushViewController,会出现以上信息,这既不是错误也不少警告,只是控制台输出的信息,但它会导致一些潜在的问题,比如NavigationController 的栈错误(比如用户有时候必须连按两次 backButton 才能返回上级视图)。往往还会伴随有如下信息的输出:
Unbalancedcalls to begin/end appearance transitions 945a7024ddbf9cc99e307517a118c7e1
所谓连续多次,是指至少有一次push 是不经过用户交互而直接代码调用的。例如,当用户点击一个 TableViewCell,弹出一个 ViewController,然后在这个ViewController 的 viewDidLoad 方法或 viewWillAppear 方法中用代码 Push 另一个 ViewController。这第二次push 并不是由用户动作而是由代码触发的,因此会导致上述问题。
解决办法是,在第二次push 时,将 animated 参数设置为 NO。
59、真机可以执行,模拟器不行
有时候出现模拟器不能调试的情况,程序一运行就退出,而且模拟器似乎“卡死”掉了,只出现一个黑黑的窗口,按Home键也没有作用。但是在真机上程序却可以运行。这个问题的原因未知,但有一个解决方式是:在另一个工程中打开模拟器,然后在模拟器中把有问题的程序删除即可。
60、警告“numeration not handledin switch”
新的Apple LLVM compiler 4.0中,会对 switch 变量进行检查,如果该变量为枚举类型,则需要处理所有的枚举值,你可以添加一个 default:break;语句表示所有未列举的枚举值已处理。或者将编译选项"Check switch statements"设置为NO。也可以用下列宏忽略switch 检查:

#pragmaclang diagnostic push
#pragmaclang diagnostic ignored "-Wswitch"...<switchstatment>...
#pragmaclang diagnostic pop


以上就是iOS 开发百问(5)的内容,更多相关内容请关注PHP中文网(www.php.cn)!


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。