คำถามติดแท็ก cocoa-touch

Cocoa Touch Frameworks ที่ผลักดันแอพ iOS แบ่งปันรูปแบบที่ผ่านการพิสูจน์แล้วมากมายที่พบใน Mac แต่ถูกสร้างขึ้นโดยเน้นไปที่อินเตอร์เฟสแบบสัมผัสและการปรับให้เหมาะสมเป็นพิเศษ

4
การจัดตำแหน่งรายการ UIToolBar
ฉันได้UIBarButtonItemสร้างขึ้นสามรายการดังต่อไปนี้ มันจัดชิดซ้ายและฉันต้องการจัดกึ่งกลางเพื่อไม่ให้มีช่องว่างทางด้านขวา UIToolBarฉันไม่เห็นสถานที่ให้บริการในตําแหน่ง มีวิธีอื่นในการทำให้สำเร็จหรือไม่? //create some buttons UIBarButtonItem *aboutButton = [[UIBarButtonItem alloc] initWithTitle:@"About" style:UIBarButtonItemStyleBordered target:self action:@selector(showAbout:)]; [toolbar setItems:[NSArray arrayWithObjects:settingsButton,deleteButton,aboutButton,nil]]; //Add the toolbar as a subview to the navigation controller. [self.navigationController.view addSubview:toolbar];

5
ฉันจะเพิ่มค่าบูลีนให้กับ NSDictionary ได้อย่างไร
NSNumberดีสำหรับจำนวนเต็มผมจะใช้ แต่ใช่และไม่ใช่ไม่ใช่สิ่งของฉันเดา Afaik ฉันสามารถเพิ่มวัตถุใน an ได้NSDictionaryเท่านั้นใช่ไหม? ฉันไม่พบคลาส Wrapper สำหรับบูลีน มีผู้ใด?

11
จะจัดเก็บค่าคงที่ทั่วโลกในแอปพลิเคชัน iOS ได้ที่ไหน
โมเดลส่วนใหญ่ในแอป iOS ของฉันค้นหาเว็บเซิร์ฟเวอร์ ฉันต้องการมีไฟล์คอนฟิกูเรชันที่เก็บ URL พื้นฐานของเซิร์ฟเวอร์ จะมีลักษณะดังนี้: // production // static NSString* const baseUrl = "http://website.com/" // testing static NSString* const baseUrl = "http://192.168.0.123/" โดยการแสดงความคิดเห็นหนึ่งบรรทัดหรืออื่น ๆ ฉันสามารถเปลี่ยนเซิร์ฟเวอร์ที่รุ่นของฉันชี้ไปได้ทันที คำถามของฉันคือแนวทางปฏิบัติที่ดีที่สุดในการจัดเก็บค่าคงที่ทั่วโลกใน iOS คืออะไร ในการเขียนโปรแกรม Android เรามีไฟล์ทรัพยากรสตริงในตัวนี้ ในกิจกรรมใด ๆ(เทียบเท่ากับUIViewController ) เราสามารถดึงค่าคงที่สตริงเหล่านั้นด้วย: String string = this.getString(R.string.someConstant); ฉันสงสัยว่า iOS SDK มีตำแหน่งที่คล้ายกันในการจัดเก็บค่าคงที่หรือไม่ ถ้าไม่แนวทางปฏิบัติที่ดีที่สุดใน Objective-C คืออะไร?


16
UITableView การตั้งค่าบางเซลล์เป็น "ไม่สามารถเลือกได้"
ฉันจะตั้งค่าคุณสมบัติเซลล์ของ UITableView ให้ไม่สามารถเลือกได้อย่างไร ฉันไม่ต้องการเห็นช่องการเลือกสีน้ำเงินนั้นเมื่อผู้ใช้แตะที่เซลล์

12
แอปพลิเคชัน iOS: จะล้างการแจ้งเตือนได้อย่างไร
ฉันมีแอปพลิเคชัน iOS ที่มีการส่ง Push Notification ไปที่ ปัญหาของฉันคือข้อความ / การแจ้งเตือนยังคงอยู่ในศูนย์การแจ้งเตือนใน iOS หลังจากนั้นจะถูกแตะ ฉันจะลบการแจ้งเตือนสำหรับแอปพลิเคชันของฉันในศูนย์การแจ้งเตือนในครั้งถัดไปที่แอปพลิเคชันเปิดขึ้นได้อย่างไร ฉันเจอโพสต์ที่มีคนโทรหาsetApplicationIconBadgeNumberค่าศูนย์เพื่อล้างการแจ้งเตือน มันดูแปลกมากสำหรับฉันดังนั้นฉันเชื่อว่าอาจมีทางออกอื่นอยู่? แก้ไข 1: ฉันมีปัญหาในการล้างการแจ้งเตือน โปรดดูรหัสของฉันที่นี่: - (void) clearNotifications { [[UIApplication sharedApplication] setApplicationIconBadgeNumber: 0]; [[UIApplication sharedApplication] cancelAllLocalNotifications]; } - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { if (launchOptions != nil) { NSDictionary* dictionary = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey]; if (dictionary != nil) …

9
วิธีที่ดีที่สุดในการนำ Enums ไปใช้กับ Core Data
วิธีใดที่ดีที่สุดในการผูกเอนทิตีข้อมูลหลักกับค่า enum เพื่อให้ฉันสามารถกำหนดคุณสมบัติประเภทให้กับเอนทิตีได้ กล่าวอีกนัยหนึ่งฉันมีเอนทิตีที่เรียกItemด้วยitemTypeคุณสมบัติที่ฉันต้องการผูกมัดกับ enum วิธีที่ดีที่สุดในการดำเนินการนี้คืออะไร

4
ทำความเข้าใจกับ NSRunLoop
ใครสามารถอธิบายได้ว่าคือNSRunLoopอะไร? อย่างที่ฉันรู้NSRunLoopคือสิ่งที่เกี่ยวโยงกันNSThreadใช่ไหม สมมติว่าฉันสร้างเธรดเช่น NSThread* th=[[NSThread alloc] initWithTarget:self selector:@selector(someMethod) object:nil]; [th start]; -(void) someMethod { NSLog(@"operation"); } หลังจากเธรดนี้เสร็จสิ้นการทำงานของเขาใช่ไหม ทำไมต้องใช้RunLoopsหรือใช้ที่ไหน? จากเอกสารของ Apple ฉันได้อ่านบางสิ่ง แต่ยังไม่ชัดเจนสำหรับฉันดังนั้นโปรดอธิบายให้ง่ายที่สุด


6
AVAudioPlayer พ่นเบรกพอยต์ในโหมดดีบัก
ทุกครั้งที่ฉันโหลดแอพมันจะหยุดราวกับว่าฉันตั้งเบรกพอยต์ไว้ในบรรทัดนี้: self.audioPlayer = [[[AVAudioPlayer alloc] initWithData:[dataPersister loadData:self.fileName] error:&outError] autorelease]; ไม่มีจุดพักด้านบนหรือที่ใด ๆ ใกล้กับเส้นนี้ จะเกิดขึ้นเฉพาะเมื่อฉันเรียกใช้แอปในโหมดดีบักและไม่มีอะไรขัดข้องหลังจากเบรกพอยต์ แอปทำงานเหมือนไม่มีอะไรเกิดขึ้นเมื่อฉันคลิก "ดำเนินการโปรแกรมต่อ" นี่คือเมธอด loadData ซึ่งเรียกด้วยinitWithData: -(NSData*)loadData:(NSString*)fileName { NSString *dataPath = [self.path stringByAppendingPathComponent:fileName]; dataPath = [dataPath stringByStandardizingPath]; NSData *data = [[[NSData alloc] initWithContentsOfFile:dataPath]autorelease ]; return data; } ดูเหมือนว่าฟังก์ชัน loadData จะทำงานได้ดี ไฟล์ mp3 ที่ร้องขอจะถูกโหลดและเล่นโดยไม่มีปัญหาใด ๆ หลังจากเบรกพอยต์ คุณรู้ไหมว่าฉันทำอะไรผิด? แก้ไข: ฉันวิ่งถอยหลังเมื่อหยุดที่จุดพัก …

15
ฉันจะทำให้ UILabel แสดงข้อความที่ระบุได้อย่างไร
ทั้งหมดที่ฉันต้องการคือเส้นขอบสีดำหนึ่งพิกเซลรอบข้อความ UILabel สีขาวของฉัน ฉันได้รับ UILabel ระดับย่อยด้วยรหัสด้านล่างซึ่งฉันปูด้วยกันอย่างงุ่มง่ามจากตัวอย่างออนไลน์ที่เกี่ยวข้องกันเชิงสัมผัสสองสามตัวอย่าง และมันใช้งานได้ แต่มันช้ามาก (ยกเว้นในโปรแกรมจำลอง) และฉันไม่สามารถทำให้ข้อความอยู่กึ่งกลางในแนวตั้งได้ (ดังนั้นฉันจึงฮาร์ดโค้ดค่า y ในบรรทัดสุดท้ายชั่วคราว) อื้อหือ! void ShowStringCentered(CGContextRef gc, float x, float y, const char *str) { CGContextSetTextDrawingMode(gc, kCGTextInvisible); CGContextShowTextAtPoint(gc, 0, 0, str, strlen(str)); CGPoint pt = CGContextGetTextPosition(gc); CGContextSetTextDrawingMode(gc, kCGTextFillStroke); CGContextShowTextAtPoint(gc, x - pt.x / 2, y, str, strlen(str)); } - (void)drawRect:(CGRect)rect{ …

4
วิธีเพิ่มมุมมองคอนเทนเนอร์โดยใช้โปรแกรม
คุณสามารถเพิ่มมุมมองคอนเทนเนอร์ลงในสตอรีบอร์ดได้อย่างง่ายดายผ่านตัวแก้ไขอินเทอร์เฟซ เมื่อเพิ่มแล้วมุมมองคอนเทนเนอร์จะเป็นมุมมองตัวยึดการทำต่อแบบฝังและตัวควบคุมมุมมอง (ลูก) อย่างไรก็ตามฉันไม่สามารถหาวิธีเพิ่มมุมมองคอนเทนเนอร์แบบเป็นโปรแกรมได้ อันที่จริงฉันไม่พบคลาสที่มีชื่อUIContainerViewหรือมากกว่านั้นด้วยซ้ำ ชื่อคลาสของ Container View เป็นการเริ่มต้นที่ดีอย่างแน่นอน คำแนะนำที่สมบูรณ์รวมถึงการทำต่อจะได้รับการชื่นชมมาก ฉันรู้จัก View Controller Programming Guide แต่ฉันไม่ถือว่ามันเหมือนกับที่ Interface Builder ทำกับ Container Viewer ตัวอย่างเช่นเมื่อตั้งค่าข้อ จำกัด อย่างถูกต้องมุมมอง (ลูก) จะปรับให้เข้ากับการเปลี่ยนแปลงขนาดในมุมมองคอนเทนเนอร์

23
ฉันจะเลื่อน UIScrollView เมื่อแป้นพิมพ์ปรากฏขึ้นได้อย่างไร
ฉันมีปัญหากับรหัสของฉัน ฉันกำลังพยายามย้ายUIScrollViewเมื่อฉันแก้ไขสิ่งUITextFieldที่ควรจะซ่อนโดยป๊อปแป้นพิมพ์ ตอนนี้ฉันกำลังย้ายเฟรมหลักเพราะฉันไม่รู้ว่าจะ "เลื่อนขึ้น" ในโค้ดอย่างไร ดังนั้นฉันทำโค้ดนิดหน่อยมันก็ใช้งานได้ดี แต่เมื่อฉันแก้ไข UItextfield และฉันเปลี่ยนไปใช้อันอื่นUITextFieldโดยไม่ต้องกดปุ่ม 'return' มุมมองหลักจะไปไกลขึ้น ฉันทำNSLog()กับตัวแปรขนาดระยะทางและ textFieldRect.origin.y ดังที่คุณเห็นด้านล่าง เมื่อฉันใส่สองตัวUITextFieldในที่เดียวกัน (จุดเริ่มต้น y) และฉันทำ 'สวิตช์' นี้โดยเฉพาะ (โดยไม่ต้องกด return) ฉันจะได้ตัวเลขเดียวกันในขณะที่รหัสของฉันทำงานได้ดีสำหรับการUITextFieldแก้ไขครั้งแรกแต่ไม่ใช่สำหรับการแก้ไขครั้งที่สอง ลองดู: - (void)textFieldDidBeginEditing:(UITextField *)textField { { int size; CGRect textFieldRect = [self.view.window convertRect:textField.bounds fromView:textField]; size = textFieldRect.origin.y + textFieldRect.size.height; if (change == FALSE) { size = size …

3
รับค่าของ UITextField เมื่อป้อนการกดแป้นพิมพ์หรือไม่
สมมติว่าฉันมีรหัสต่อไปนี้: IBOutlet UITextField* nameTextField; IBOutlet UILabel* greetingLabel; ฉันต้องการgreetingLabelให้อ่าน "สวัสดี [nameTextField]" ทันทีที่ผู้ใช้กดปุ่มใด ๆ สิ่งที่ฉันต้องการโดยทั่วไปเป็นเทียบเท่า iPhone controlTextDidChangeของวิธีการผู้รับมอบสิทธิ์โกโก้ มีtextField:shouldChangeCharactersInRange:การเรียกวิธีการมอบหมายทุกครั้งที่เกิดการกดแป้นพิมพ์: - (BOOL) textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string อาร์กิวเมนต์สตริงจะส่งคืนอักขระที่ถูกกด อย่างไรก็ตามค่าจริงtextField( nameTextField.text) ยังคงว่างเปล่า ฉันพลาดอะไรไปที่นี่? (ฉันต้องการnameTextFieldแสดงสตริงที่แน่นอนที่ผู้ใช้ป้อนจนถึงตอนนี้)

6
วิธีการส่งออก Cocoa Touch Framework ที่“ อ้วน” (สำหรับโปรแกรมจำลองและอุปกรณ์)
ด้วยXcode 6Cocoa Frameworksเราได้รับความสามารถในการสร้างแบบไดนามิกของตัวเอง เพราะว่า: โปรแกรมจำลองยังคงใช้32-bitไลบรารี ตั้งแต่วันที่ 1 มิถุนายน 2015 การอัปเดตแอปที่ส่งไปยัง App Store จะต้องมีการรองรับ 64 บิตและสร้างด้วย iOS 8 SDK ( developer.apple.com ) เราต้องสร้างห้องสมุดไขมันเพื่อเรียกใช้โครงการบนอุปกรณ์และเครื่องจำลอง เช่นรองรับทั้ง 32 และ 64 บิตใน Frameworks แต่ฉันไม่พบคู่มือใด ๆ วิธีการส่งออก universal fat Framework สำหรับการรวมกับโครงการอื่น ๆ ในอนาคต (และแชร์ไลบรารีนี้กับใครบางคน) นี่คือขั้นตอนของฉันในการทำซ้ำ: ตั้งค่าONLY_ACTIVE_ARCH=NOในไฟล์Build Settings เพิ่มการสนับสนุนarmv7 armv7s arm64 i386 x86_64ให้Architectures(แน่นอน) สร้าง Framework และเปิดใน Finder: …

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.