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

Fragen zur iOS-Entwicklung (1)

黄舟
黄舟Original
2017-01-20 09:23:321025Durchsuche

1. Legen Sie die Größe von ImagePicker fest.
ImagePicker wird im Popover-Controller immer in der Standardgröße angezeigt, und das Festlegen des popoverContentSize-Attributs scheint nutzlos. Die Lösung besteht darin, den ImagePicker in einen benutzerdefinierten ViewController „einzuschließen“ und dann diesen ViewController als Popover zu präsentieren:

UIViewController *containerController = [[UIViewController alloc] init];
containerController.contentSizeForViewInPopover = CGSizeMake(600,self.view.frame.size.height);
[containerController.viewaddSubview:_imagePicker.view];
_popController= [[UIPopoverController alloc] initWithContentViewController:containerController];
CGPoint p=[self.view convertPoint:button.center
fromView:sender.superview];
[_popController presentPopoverFromRect:(CGRect){p,CGSizeZero}
inView:self.view
permittedArrowDirections:UIPopoverArrowDirectionAny
animated:YES];
[_imagePicker.view setFrame:containerController.view.frame];// 很重要

Beachten Sie, dass die Breite des Popovers höchstens 600 beträgt. Darüber hinaus muss _imagePicker vor jedem presentPopoverFromRect einmal initiert werden, da sonst die Anzeigeposition falsch ist.
2. Das Problem verstümmelter chinesischer Dateinamen in hochgeladenen Dateien
Verwenden Sie URL Encode, um den Dateinamen auf dem iOS-Client zu kodieren, und verwenden Sie dann URL Decode, um ihn auf dem Server zu dekodieren.
Client:

NSStringEncodingenc=NSUTF8StringEncoding;
[request setData:datawithFileName [filename stringByAddingPercentEscapesUsingEncoding:enc]
andContentType:@"application/octet-stream" forKey:key];

Server:

String filename=request.getParameter(“upload_file”);
filename=URLDecode.decode(s,”utf-8”);

3. Mac 64-Bit-Gerät
Manchmal nach der Aktualisierung des Projekts von SVN, Scheme It wird als Mac 64-Bit-Gerät angezeigt und lässt die Ausführung des Programms nicht zu. Zu diesem Zeitpunkt müssen Sie nur das DeploymentTarget von Target zurücksetzen (auf Simulator oder Debuggerät einstellen).
4. Entfernen Sie das NSLog des Debuggers
Der Kompilierungsparameter Optimize Level wird je nach Version eingestellt. Die Debug-Version ist beispielsweise „None“ und die Release-Version ist „Fastest, Smallest“. Auf diese Weise können wir die NSLog-Funktion basierend auf diesem Parameter neu definieren:

#ifndef __OPTIMIZE__
#define NSLog(...)NSLog(__VA_ARGS__)
#else
#define NSLog(...) {}
#endif

5. Warnung: kein vorheriger Prototyp für die Funktion
Gemäß der C-Spezifikation, wenn die Funktion keine hat Parameter verwenden Sie void als Funktionsparameter.
Funktionsdeklaration sollte „void functionA(void);“ anstelle von „void functionA();“ verwenden.
Methode 1:

- (NSComparisonResult)compare:(Person *)otherObject {
return [self.birthDatecompare:otherObject.birthDate];
}
NSArray *sortedArray;
sortedArray = [drinkDetails sortedArrayUsingSelector:@selector(compare:)];
Methode 2:


NSSortDescriptor *sortDescriptor;
sortDescriptor = [[[NSSortDescriptor alloc]initWithKey:@"birthDate"
ascending:YES] autorelease];
NSArray *sortDescriptors = [NSArray arrayWithObject:sortDescriptor];
NSArray *sortedArray;
sortedArray = [drinkDetails sortedArrayUsingDescriptors:sortDescriptors];
Methode 3 (10.6+):



NSArray *sortedArray;
sortedArray = [drinkDetails sortedArrayUsingComparator:^(id a, id b) {
NSDate *first =[(Person*)a birthDate];
NSDate *second =[(Person*)b birthDate];
return [firstcompare:second];
}];
7. Wo ist das Build-Verzeichnis von Xcode 4?

Xcode 4 hat viele Änderungen vorgenommen. Sie können das Build-Verzeichnis und die Dateigruppe „Produkte“ nicht finden. Wo wird also die ausführbare Datei abgelegt, die nach der Kompilierung des Projekts generiert wird? Die Antwort ist das Verzeichnis „{USERNAME}/Library/Developer/Xcode/DerivedData/{PROJECT_NAME_AND_RANDOM_CRAP}/Build/Products/{BUILD_TYPE}/{PROJECT_NAME}.app“.
8. Warnung: Keine Regel zum Verarbeiten von Dateien
Xcode versucht, jeden Dateityp zu erkennen. Wenn es denkt, dass eine Datei vom Typ „Quelldatei“ ist (z. B. eine .js-Datei), versucht es immer, sie zu „Quellen kompilieren“ hinzuzufügen und zu kompilieren. Die Lösung für diese Warnung besteht darin, solche Dateien aus den Kompilierungsquellen der Build-Phasen in die Kopie-Bundle-Ressourcen zu verschieben.
9. Warnung: „initWithFrame:reuseIdentifier:“ ist veraltet
Diese Methode wird in nachfolgenden Versionen aufgegeben. Bitte verwenden Sie
- initWithStyle:reuseIdentifier:
10. itms-services wird von Apple/iPhone als spezielles Wort erkannt. Es überprüft das im Bereitstellungsprofil angegebene Zertifikat und installiert es Es. .
Überprüfen Sie vor der Installation dieser IPA-Datei das Profisioning-Profil, das mit „ax.init.itunes.apple.com“ und „ocsp.apple.com“ verbunden wird.
Wenn Sie sich in einem Intranet befinden, prüfen Sie bitte, ob die oben genannte Adresse erreichbar ist. Andernfalls können Sie die App nicht über OTA installieren. Erfordert iOS 4.0 oder höher.
Hinweis: Wenn Sie nicht auf die oben genannte Adresse zugreifen können, hat dies keine Auswirkungen auf die Installation. Allerdings prüft iOS zur Laufzeit über die oben genannte Adresse, ob die Installation legal ist, speichert iOS die Prüfergebnisse zwischen.


Das Obige ist der Inhalt der iOS-Entwicklungsfragen (1). Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (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