iOS 开发百问(1)

Jan 20, 2017 am 09:23 AM

1、设置 ImagePicker 的大小
ImagePicker 在 Popover Controller 总是以默认大小显示,设置 popoverContentSize 属性似乎无用。解决办法是将ImagePicker “包含”到一个定制的 ViewController 中,然后再 presentPopover 这个 ViewController :

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];// 很重要
Salin selepas log masuk

注意,popover的宽度最多600。此外,_imagePicker 每次 presentPopoverFromRect 之前都必须 init一次,否则显示位置不正确。
2、上传文件中文文件名乱码问题
在iOS客户端将文件名用URL Encode编码,然后在服务端用URL Decode解码。
客户端:

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

服务端:

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

3、Mac 64 bit Device
有时从SVN更新工程后,Scheme会显示为Mac 64 bit Device,并且不允许运行程序。这时只需要重新设置一下Target的DeploymentTarget就好(设置为模拟器或调试设备)。
4、去除调试程序的NSLog
编译参数Optimize Level根据不同的版本设置。例如对于Debug版本是None,对于Release版本是Fastest,Smallest。这样,我们可以根据这个参数来重新定义NSLog函数:

#ifndef __OPTIMIZE__
#define NSLog(...)NSLog(__VA_ARGS__)
#else
#define NSLog(...) {}
#endif
Salin selepas log masuk

5、警告:no previous prototye for function
根据c规范, 如果函数没有参数,使用void作为函数参数。
函数声明应使用 “void functionA(void);”,而不能是”void functionA();”.
6、数组排序
方法一:

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

方法二:

NSSortDescriptor *sortDescriptor;
sortDescriptor = [[[NSSortDescriptor alloc]initWithKey:@"birthDate"
ascending:YES] autorelease];
NSArray *sortDescriptors = [NSArray arrayWithObject:sortDescriptor];
NSArray *sortedArray;
sortedArray = [drinkDetails sortedArrayUsingDescriptors:sortDescriptors];
Salin selepas log masuk

方法三( 10.6+):

NSArray *sortedArray;
sortedArray = [drinkDetails sortedArrayUsingComparator:^(id a, id b) {
NSDate *first =[(Person*)a birthDate];
NSDate *second =[(Person*)b birthDate];
return [firstcompare:second];
}];
Salin selepas log masuk

7、Xcode 4的build目录在哪里?
Xcode 4 做了许多改变。你将不能找到build目录,你也无法找到Products文件组。那么它把项目编译后生成的可执行文件放在哪里了呢?答案就是“{USERNAME}/Library/Developer/Xcode/DerivedData/{PROJECT_NAME_AND_RANDOM_CRAP}/Build/Products/{BUILD_TYPE}/{PROJECT_NAME}.app”目录。
8、警告:no rule to process file
Xcode试图侦测每一种文件的类型。当它认为文件属于“源文件”类型(比如.js文件),总是试图将它加到 Compile Sources中并试图编译。解决这个警告的办法是,把这类文件从Build Phases的 Compile Sources移到 Copy Bundle Resources中。
9、警告:'initWithFrame:reuseIdentifier:'is deprecated
该方法在后续版本中将被抛弃。请使用
- initWithStyle:reuseIdentifier:
10、itms-services不工作
itms-services 被apple/iphone识别为一个特殊的字眼,它会校验provisioning profile中指定的证书并进行安装。
在安装这个.ipa文件前,要校验profisioning profile,这会连接到 "ax.init.itunes.apple.com"和 "ocsp.apple.com"。
如果你处于intranet中,请检查是否可访问上述地址。如果不能,你将无法使用OTA来安装应用程序。要求iOS 4.0以上。
注:上述地址不能访问并不会影响安装。但是iOS会在运行时通过上述地址检查证书是否合法,如果安装是合法的,iOS会缓存检查结果(7天)。

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


Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Versi pertama iOS 18 Apple terdedah kepada banyak pepijat: demam serius, kelewatan WeChat Versi pertama iOS 18 Apple terdedah kepada banyak pepijat: demam serius, kelewatan WeChat Jun 13, 2024 pm 09:39 PM

WWDC tahunan telah berakhir, dan iOS18 sudah pasti menjadi tumpuan perhatian semua orang. Pada masa ini, ramai pengguna iPhone tergesa-gesa untuk menaik taraf kepada iOS18, tetapi pelbagai pepijat sistem menyebabkan orang tidak selesa. Sesetengah penulis blog berkata bahawa anda harus berhati-hati semasa menaik taraf kepada iOS18 kerana "terdapat banyak pepijat." Blogger itu berkata bahawa jika iPhone anda adalah mesin utama anda, adalah disyorkan untuk tidak menaik taraf kepada iOS18 kerana versi pertama mempunyai banyak pepijat. Beliau juga meringkaskan beberapa pepijat sistem yang ditemui pada masa ini: 1. Menukar gaya ikon tersekat, menyebabkan ikon tidak dipaparkan 2. Animasi lebar lampu suluh sering hilang 3. Apl Douyin tidak boleh memuat naik video 10 saat 5 , telefon tidak boleh dibuat dan skrinnya hitam 6. Demam yang teruk.

Apple mengeluarkan semula kemas kini iOS/iPadOS 18 Beta 4, nombor versi dinaikkan kepada 22A5316k Apple mengeluarkan semula kemas kini iOS/iPadOS 18 Beta 4, nombor versi dinaikkan kepada 22A5316k Jul 27, 2024 am 11:06 AM

Terima kasih kepada netizen Ji Yinkesi, xxx_x, tomato goreng, Terrence dan stik drum ayam berempah kerana menyerahkan petunjuk! Menurut berita pada 27 Julai, Apple hari ini mengeluarkan semula kemas kini iOS/iPadOS 18 Beta 4 untuk pembangun Nombor versi dalaman telah dinaik taraf daripada 22A5316j kepada 22A5316k Pada masa ini tidak jelas perbezaan antara dua kemas kini versi Beta 4. Pembangun berdaftar boleh membuka apl "Tetapan", masukkan bahagian "Kemas Kini Perisian", klik pilihan "Kemas Kini Beta", dan kemudian togol tetapan Beta Pembangun iOS18/iPadOS18 untuk memilih versi beta. Memuat turun dan memasang versi beta memerlukan ID Apple yang dikaitkan dengan akaun pembangun. Dilaporkan pada 24 Julai, iO

Apple mengeluarkan pakej Swift sumber terbuka untuk penyulitan homomorfik, digunakan dalam iOS 18 Apple mengeluarkan pakej Swift sumber terbuka untuk penyulitan homomorfik, digunakan dalam iOS 18 Jul 31, 2024 pm 01:10 PM

Menurut berita pada 31 Julai, Apple mengeluarkan kenyataan akhbar semalam (30 Julai), mengumumkan pelancaran pakej Swift sumber terbuka baharu (swift-homomorphic-encryption) untuk membolehkan penyulitan homomorphic dalam bahasa pengaturcaraan Swift. Nota: Penyulitan Homomorfik (HE) merujuk kepada algoritma penyulitan yang memenuhi sifat operasi homomorfik teks sifir Iaitu, selepas data disulitkan secara homomorfik, pengiraan khusus dilakukan pada teks sifir, dan hasil pengiraan teks sifir yang diperolehi diproses pada masa yang sama. masa. Teks biasa selepas penyahsulitan keadaan adalah bersamaan dengan melakukan pengiraan yang sama secara langsung pada data teks biasa, mencapai "halimunan" data. Teknologi penyulitan homomorfik boleh mengira data yang disulitkan tanpa membocorkan data asas yang tidak disulitkan kepada proses operasi.

Kemas kini | Penggodam menerangkan cara memasang Epic Games Store dan Fortnite pada iPad di luar EU Kemas kini | Penggodam menerangkan cara memasang Epic Games Store dan Fortnite pada iPad di luar EU Aug 18, 2024 am 06:34 AM

Kemas kini: Saunders Tech telah memuat naik tutorial ke saluran YouTubenya (video dibenamkan di bawah) yang menerangkan cara memasang Fortnite dan Epic Games Store pada iPad di luar EU. Walau bagaimanapun, bukan sahaja proses itu memerlukan versi beta khusus iO

Ciri baharu apl 'Nota Tanpa Batas' iOS 18 Apple: fungsi Scenes diperluas, penjajaran grid diperkenalkan Ciri baharu apl 'Nota Tanpa Batas' iOS 18 Apple: fungsi Scenes diperluas, penjajaran grid diperkenalkan Jun 02, 2024 pm 05:05 PM

Menurut berita pada 1 Jun, media teknologi AppleInsider menerbitkan catatan blog hari ini, menyatakan bahawa Apple akan melancarkan fungsi navigasi baharu "Scenes" untuk sambungan aplikasi "Freeform" dalam sistem iOS18, dan menambah pilihan baharu untuk penjajaran objek. Pengenalan kepada aplikasi "Wubianji" Pertama, mari kita perkenalkan secara ringkas aplikasi "Wubianji" Aplikasi ini akan dilancarkan pada tahun 2022 dan kini telah melancarkan versi iOS, iPadOS, macOS15 dan visionOS. Pengenalan rasmi Apple adalah seperti berikut: "Nota Tanpa Batas" ialah alat yang sangat baik untuk mengubah inspirasi menjadi realiti. Lakarkan projek, reka bentuk papan mood atau mulakan sumbang saran pada kanvas fleksibel yang menyokong hampir semua jenis fail. Dengan iCloud, semua papan anda

Versi Apple iOS 17.5 RC dikeluarkan: membolehkan pengguna iPhone EU memuat turun aplikasi daripada tapak web Versi Apple iOS 17.5 RC dikeluarkan: membolehkan pengguna iPhone EU memuat turun aplikasi daripada tapak web May 08, 2024 am 09:30 AM

[Klik di sini untuk pergi terus ke tutorial peningkatan] Menurut berita pada 8 Mei, Apple menolak kemas kini iOS17.5RC (nombor versi dalaman: 21F79) kepada pengguna iPhone hari ini. Kemas kini ini tinggal 70 hari lagi daripada keluaran terakhir. Bagaimana untuk menaik taraf versi pembangunan iOS/iPadOS/watchOS/macOS dan versi beta awam? Untuk menaik taraf versi pratonton pembangun iOS/iPadOS17 dan versi beta awam, anda boleh merujuk kepada pengalaman yang dikongsi oleh rakan: Siaran Pengalaman 1||Siaran Pengalaman 2||Siaran Pengalaman 3||Siaran Pengalaman 4. Bermula dari iOS/iPadOS 16.4 Developer Preview Beta 1, anda perlu mendaftar untuk Apple Developer Program Selepas pendaftaran, buka sistem [Settings] [Software Update] untuk melihat pilihan naik taraf. Sila ambil perhatian bahawa iPhone atau IP anda

Pratonton Pembangun Apple iOS/iPadOS 18 Beta 4 dikeluarkan: Menambah kertas dinding CarPlay, memilih tetapan pilihan, kawalan kamera dipertingkat Pratonton Pembangun Apple iOS/iPadOS 18 Beta 4 dikeluarkan: Menambah kertas dinding CarPlay, memilih tetapan pilihan, kawalan kamera dipertingkat Jul 24, 2024 am 09:54 AM

Terima kasih kepada netizen Burger Kaki Ayam Pedas, Soft Media New Friends 2092483, Handwritten Past, DingHao, Xiaoxing_14, Wowotou Eat Big Kou, Feiying Q, Soft Media New Friends 2168428, Slades, Aaron212, Happy Little Hedgehog, Little Earl, Clues for the little susu kucing yang makan ikan! [Klik di sini untuk pergi terus ke tutorial naik taraf] Menurut berita pada 24 Julai, Apple hari ini menolak kemas kini versi pratonton pembangun iOS/iPadOS18 Beta4 (nombor versi dalaman: 22A5316j) kepada pengguna iPhone dan iPad keluaran terakhir. Kertas Dinding Carplay Apple telah menambahkan kertas dinding pada CarPlay, meliputi mod terang dan gelap Gaya kertas dindingnya serupa dengan iPhone

Sekiranya iPhone12 ios16 dikemas kini kepada ios17.5beta3? Bagaimanakah pengalaman ios17.5beta3? Sekiranya iPhone12 ios16 dikemas kini kepada ios17.5beta3? Bagaimanakah pengalaman ios17.5beta3? Apr 25, 2024 pm 04:52 PM

Perkongsian praktikal... Memandangkan Apple terus melancarkan versi iOS baharu, ramai pengguna iPhone berdepan dengan pilihan sama ada untuk menaik taraf sistem. Pengeluaran iOS17.5Beta3 terbaharu telah menarik perhatian meluas, terutamanya untuk pengguna iPhone12 sama ada mereka harus meninggalkan iOS16 sedia ada dan mencuba versi Beta baharu telah menjadi persoalan yang patut dibincangkan. Berdasarkan pengalaman sebenar, artikel ini menganalisis kebaikan dan keburukan menaik taraf iPhone 12 kepada iOS 17.5 Beta 3 untuk memberikan rujukan kepada majoriti peminat Apple. Pertama sekali, kami perlu menjelaskan dengan jelas bahawa versi Beta biasanya digunakan oleh pembangun atau pengguna awal yang sanggup mengambil risiko tertentu. Ini bermakna berbanding dengan versi rasmi, versi Beta mungkin mengandungi

See all articles