Heim  >  Artikel  >  Backend-Entwicklung  >  Fragen zur iOS-Entwicklung (5)

Fragen zur iOS-Entwicklung (5)

黄舟
黄舟Original
2017-01-20 09:34:331376Durchsuche

42. Warnung: Mehrere Build-Befehle für die Ausgabedatei
Das Ziel verweist auf Ressourcen mit doppelten Namen
Suchen Sie das aktuelle Ziel, erweitern Sie es, suchen Sie die Spalte „CopyBundle-Ressourcen“ und suchen Sie dann die Ressourcen mit doppelten Namen darin und Löschen Sie die unnötigen. Das ist es.
43. Signaturfehler: Provisioningprofile kann nicht gefunden werden
Wenn Sie in Xcode Ihr Zertifikat aktualisieren und dann Ihr Programm neu kompilieren, wird während der Real-Machine-Operation immer Code Sign-Fehler: Provisioning angezeigt Das Debuggen des Profils „XXXX“ kann Sie stören. Lassen Sie uns über die folgende Lösung sprechen, damit Sie dieses Problem gut lösen können.
1. Schließen Sie Ihr Projekt, suchen Sie die Projektdatei XXXX.xcodeproj, klicken Sie mit der rechten Maustaste auf die Datei und wählen Sie „Paketinhalt anzeigen“. Ein neuer Finder wird geöffnet. Hinweis: Tatsächlich handelt es sich bei XXXX.xcodeproj um einen Ordner. Die drei Dateien im neu geöffneten Finder sind die Dateien im Ordner XXXX.xcodeproj.
2. Suchen Sie project.pbxproj im neu geöffneten Finder und öffnen Sie es. Hier finden Sie die Kodierungsinformationen für Ihr bisheriges Zertifikat. Die Fehlermeldung, die ich zuvor gemeldet habe, war:
CodeSign-Fehler: Bereitstellungsprofil „37D44E7F-0339-4277-9A82-C146A944CD46“, daher habe ich die Suchmethode verwendet, um alle Zeilen einschließlich 37D44E7F-0339-4277-9A82-C146A944CD46 zu finden. und löschen.
3. Speichern Sie Ihr Projekt, starten Sie es neu und kompilieren Sie es erneut. Das ist in Ordnung.
44. Nach dem Upgrade auf unterstützt „arc4random_uniform“ nicht. Das Problem wurde behoben, nachdem es durch „arc4random“ ersetzt wurde.
45. Nach dem Upgrade von gelöst.
46. Nach dem Upgrade von Xcode4.6 erschien eine Warnung: function'sleep' is invalid in C99

#importf55648144b4a1c5cce7ad2f6519be0f3 Nach dem Upgrade auf Xcode4.6 werden viele Header-Dateien nicht automatisch importiert, z. B. stdlib.h und unistd.h.
Useof undeclared identifier 'arc4random_uniform'; did you mean 'arc4random_stir'?
47. Kompilierungsfehler: Autolayout auf iOS-Versionen vor 6.0

Dieses Problem tritt beim Kompilieren der Target 4.0-App in Xcode 4.6 auf (echte Maschinen-Debugging, Gerät ist 3GS, aktualisiert auf iOS 6.1.3). Suchen Sie die .xib-Datei, die den Fehler gemeldet hat, und deaktivieren Sie „UseAutolayout“ (siehe Abbildung unten) im Dokumentfenster.

48. Wie stelle ich die Textausrichtung der Schaltfläche TitleLabel ein?
Legen Sie das contentHorizontalAlignment-Attribut fest:
emailBtn.contentHorizontalAlignment= UIControlContentHorizontalAlignmentLeft;
Oder verwenden Sie contentEdgeInset, um die Textränder anzupassen (0 bedeutet keine Ausrichtung):
emailBtn.contentEdgeInsets= UIEdgeInsetsMake(0, 10, 0, 0) ;
Oder verwenden Sie beide zusammen.
49. Fehler: errorDomain=UA_ASIHTTPRequestErrorDomain Code=8 „Datei konnte nicht verschoben werden von
Der Fehler tritt auf, nachdem die Datei heruntergeladen wurde, aber bevor die Datei erfolgreich vom tmp-Speicherort in den Cache-Speicherort verschoben wurde.
Der Fehler geschieht, nachdem die Datei in eine temporäre Datei heruntergeladen wurde, aber bevor sie in das Dokumentenverzeichnis verschoben wird (Sie können iExplorer verwenden, um die Existenz der temporären Datei zu überprüfen).
Verwenden Sie „[requestsetShouldAttemptPersistentConnection:NO];“ Problem. 50. Kompilierungsfehler: „wurde geändert, seit der vorkompilierte Header erstellt wurde“

Die Datei wurde geändert, als der Header vorkompiliert wurde.
51 auf der Anwendung
Kann nicht verwendet werden, wenn zwei verschiedene Anwendungen mit derselben AppID auf dem iPhone installiert werden, was normalerweise zu Problemen bei der Ausführung des Befehls „Project-->Profile“ in Xcode führt -Geräte-Debugging und das Projekt-- werden ausgeführt und dann das Programm erneut auf dem iPhone installiert. Die AppIDs der beiden Programme sind natürlich gleich, daher tritt der oben genannte Fehler auf. Lösung: Löschen Sie zuerst das Programm auf dem iPhone , und führen Sie dann den Befehl „Project-->Profile“ aus: „Targetfaild to run“, wie unten gezeigt



点击菜单栏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)!


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Fragen zur iOS-Entwicklung (4)Nächster Artikel:Fragen zur iOS-Entwicklung (4)