คำถามติดแท็ก objective-c

แท็กนี้ควรใช้กับคำถามที่เกี่ยวกับคุณสมบัติ Objective-C หรือขึ้นอยู่กับรหัสในภาษา ควรใช้แท็ก [cocoa] และ [cocoa-touch] เพื่อสอบถามเกี่ยวกับกรอบหรือคลาสของ Apple ใช้แท็กที่เกี่ยวข้อง [ios], [macos], [apple-watch] และ [tvos] สำหรับปัญหาเฉพาะของแพลตฟอร์มเหล่านั้น

26
อะไรคือความแตกต่างระหว่างแอตทริบิวต์ของอะตอมและไม่ใช่ของอะตอม?
สิ่งใดatomicและมีความnonatomicหมายในการประกาศทรัพย์สิน? @property(nonatomic, retain) UITextField *userName; @property(atomic, retain) UITextField *userName; @property(retain) UITextField *userName; ความแตกต่างในการดำเนินงานระหว่างสามสิ่งนี้คืออะไร

30
ฉันจะทำให้ UITextField เลื่อนขึ้นเมื่อมีแป้นพิมพ์อยู่ - เมื่อเริ่มแก้ไข
ด้วย iOS SDK: ฉันมีUIViewกับUITextFieldที่นำขึ้นแป้นพิมพ์ ฉันต้องการมันเพื่อให้สามารถ: อนุญาตให้เลื่อนเนื้อหาของUIScrollViewเพื่อดูฟิลด์ข้อความอื่น ๆ เมื่อคีย์บอร์ดปรากฏขึ้น "กระโดด" โดยอัตโนมัติ (โดยเลื่อนขึ้น) หรือย่อ UIScrollViewฉันรู้ว่าฉันต้องมี ฉันได้ลองเปลี่ยนคลาสของฉันUIViewเป็นUIScrollViewแต่ฉันยังไม่สามารถเลื่อนกล่องข้อความขึ้นหรือลง ฉันต้องการทั้ง a UIViewและ a UIScrollViewหรือไม่? ไม่มีใครเข้าไปข้างในอีกหรือไม่ สิ่งที่ต้องดำเนินการเพื่อเลื่อนไปยังฟิลด์ข้อความที่ใช้งานอยู่โดยอัตโนมัติ จะเป็นการดีที่สุดสำหรับการตั้งค่าส่วนประกอบที่จะทำได้ในตัวสร้างส่วนต่อประสาน ฉันต้องการเขียนโค้ดเฉพาะสิ่งที่จำเป็นเท่านั้น หมายเหตุ: UIView(หรือUIScrollView) ที่ฉันกำลังทำงานด้วยถูกนำขึ้นมาโดย tabbar ( UITabBar) ซึ่งต้องทำงานตามปกติ แก้ไข: ฉันกำลังเพิ่มแถบเลื่อนเฉพาะเมื่อแป้นพิมพ์ปรากฏขึ้น แม้ว่าจะไม่จำเป็น แต่ฉันรู้สึกว่ามันมีส่วนต่อประสานที่ดีกว่าเพราะผู้ใช้สามารถเลื่อนและเปลี่ยนกล่องข้อความได้ ฉันได้มันทำงานที่ฉันเปลี่ยนขนาดเฟรมของUIScrollViewเมื่อแป้นพิมพ์ขึ้นและลง ฉันแค่ใช้: -(void)textFieldDidBeginEditing:(UITextField *)textField { //Keyboard becomes visible scrollView.frame = CGRectMake(scrollView.frame.origin.x, scrollView.frame.origin.y, scrollView.frame.size.width, scrollView.frame.size.height - 215 …

30
การส่งผ่านข้อมูลระหว่างตัวควบคุมมุมมอง
ฉันยังใหม่กับ iOS และ Objective-C และกระบวนทัศน์ MVC ทั้งหมดและฉันติดอยู่กับสิ่งต่อไปนี้: ฉันมีมุมมองที่ทำหน้าที่เป็นแบบฟอร์มการป้อนข้อมูลและฉันต้องการให้ตัวเลือกแก่ผู้ใช้ในการเลือกผลิตภัณฑ์หลายรายการ ผลิตภัณฑ์มีการระบุไว้ในมุมมองอื่นด้วยUITableViewControllerและฉันได้เปิดใช้งานการเลือกหลายรายการ คำถามของฉันคือฉันจะถ่ายโอนข้อมูลจากมุมมองหนึ่งไปยังมุมมองอื่นได้อย่างไร ฉันจะเลือกสิ่งที่อยู่UITableViewในอาร์เรย์ แต่ฉันจะส่งกลับไปยังมุมมองฟอร์มการป้อนข้อมูลก่อนหน้าได้อย่างไรเพื่อให้สามารถบันทึกพร้อมกับข้อมูลอื่น ๆ ไปยัง Core Data เมื่อส่งแบบฟอร์ม ฉันได้ท่องไปรอบ ๆ และเห็นบางคนประกาศอาร์เรย์ในตัวแทนแอพ ฉันอ่านบางอย่างเกี่ยวกับ Singletons แต่ไม่เข้าใจว่าสิ่งเหล่านี้คืออะไรและฉันอ่านบางอย่างเกี่ยวกับการสร้างแบบจำลองข้อมูล อะไรจะเป็นวิธีที่ถูกต้องในการทำสิ่งนี้และฉันจะทำอย่างไร

18
ฉันจะปิดการใช้งาน ARC สำหรับไฟล์เดียวในโครงการได้อย่างไร
ฉันใช้ ARC สำเร็จในโครงการของฉัน อย่างไรก็ตามฉันได้พบกับไฟล์ไม่กี่ไฟล์ (เช่นในการทดสอบหน่วยและวัตถุจำลอง) ซึ่งกฎของ ARC มีความเปราะบางมากขึ้นในขณะนี้ ฉันจำได้ว่าได้ยินว่ามีวิธีปิดใช้งาน ARC แบบต่อไฟล์ แต่ฉันไม่พบตัวเลือกนี้ เป็นไปได้ไหม ฉันจะปิดการใช้งาน ARC บนพื้นฐานต่อไฟล์ได้อย่างไร

27
ฉันจะเรียงลำดับ NSMutableArray ด้วยวัตถุที่กำหนดเองได้อย่างไร
สิ่งที่ฉันต้องการจะทำนั้นค่อนข้างง่าย แต่ฉันไม่สามารถหาคำตอบในเว็บได้ ฉันมีNSMutableArrayสิ่งของและสมมุติว่ามันเป็นวัตถุ 'บุคคล' ฉันต้องการที่จะเรียงลำดับNSMutableArrayโดย Person.birthDate NSDateซึ่งเป็น ฉันคิดว่ามันเกี่ยวข้องกับวิธีการนี้: NSArray *sortedArray = [drinkDetails sortedArrayUsingSelector:@selector(???)]; ใน Java ฉันจะทำให้วัตถุของฉันใช้ Comparable หรือใช้ Collections.sort กับเครื่องมือเปรียบเทียบแบบกำหนดเองแบบอินไลน์ ... คุณทำเช่นนี้ใน Objective-C อย่างไร

19
performSelector อาจทำให้เกิดการรั่วไหลเนื่องจากไม่รู้จักตัวเลือก
ฉันได้รับคำเตือนต่อไปนี้โดยคอมไพเลอร์ ARC: "performSelector may cause a leak because its selector is unknown". นี่คือสิ่งที่ฉันทำ: [_controller performSelector:NSSelectorFromString(@"someMethod")]; เหตุใดฉันจึงได้รับคำเตือนนี้ ฉันเข้าใจว่าคอมไพเลอร์ไม่สามารถตรวจสอบว่ามีตัวเลือกอยู่หรือไม่ แต่ทำไมมันถึงทำให้เกิดการรั่ว และฉันจะเปลี่ยนรหัสของฉันอย่างไรเพื่อที่ฉันจะไม่ได้รับคำเตือนนี้อีกต่อไป?

23
ฉันจะตรวจสอบว่าสตริงมีสตริงอื่นใน Objective-C ได้อย่างไร?
ฉันจะตรวจสอบว่าสตริง ( NSString) มีสตริงอื่นที่เล็กกว่าได้อย่างไร? ฉันหวังว่าจะชอบ: NSString *string = @"hello bla bla"; NSLog(@"%d",[string containsSubstring:@"hello"]); แต่สิ่งที่ฉันพบได้ใกล้ที่สุดคือ: if ([string rangeOfString:@"hello"] == 0) { NSLog(@"sub string doesnt exist"); } else { NSLog(@"exists"); } อย่างไรก็ตามเป็นวิธีที่ดีที่สุดในการค้นหาว่าสตริงมีสตริงอื่นหรือไม่

29
ทางลัดใน Objective-C เพื่อต่อ NSStrings
มีทางลัดไปยัง ( stringByAppendingString:) การต่อสตริงใน Objective-C หรือทางลัดสำหรับการทำงานNSStringโดยทั่วไปหรือไม่? ตัวอย่างเช่นฉันต้องการทำ: NSString *myString = @"This"; NSString *test = [myString stringByAppendingString:@" is just a test"]; บางสิ่งที่ชอบมากขึ้น: string myString = "This"; string test = myString + " is just a test";

13
enum typedef ใน Objective-C คืออะไร?
ฉันไม่คิดว่าฉันเข้าใจในสิ่งที่เป็นenumอยู่และควรใช้เมื่อใด ตัวอย่างเช่น: typedef enum { kCircle, kRectangle, kOblateSpheroid } ShapeType; มีการประกาศอะไรที่นี่จริง ๆ ?

14
ค่าคงที่ใน Objective-C
ฉันกำลังพัฒนาแอปพลิเคชั่นCocoaและฉันใช้ค่าคงNSStringที่เป็นวิธีเก็บชื่อคีย์สำหรับค่ากำหนดของฉัน ฉันเข้าใจว่านี่เป็นความคิดที่ดีเพราะช่วยให้เปลี่ยนคีย์ได้ง่ายหากจำเป็น นอกจากนี้ยังเป็นแนวคิดทั้งหมดที่ 'แยกข้อมูลของคุณออกจากตรรกะของคุณ อย่างไรก็ตามมีวิธีที่ดีในการกำหนดค่าคงที่เหล่านี้หนึ่งครั้งสำหรับการสมัครทั้งหมดหรือไม่? ฉันแน่ใจว่ามีวิธีที่ง่ายและชาญฉลาด แต่ตอนนี้ชั้นเรียนของฉันเพิ่งกำหนดใหม่ที่พวกเขาใช้

17
ฉันจะเรียกรหัส Objective-C จาก Swift ได้อย่างไร
ใน Swift หนึ่งเรียกรหัส Objective-C อย่างไร Apple กล่าวว่าพวกเขาสามารถอยู่ร่วมในแอปพลิเคชันเดียวได้ แต่นี่หมายความว่าเราสามารถใช้คลาสเก่าที่สร้างขึ้นใหม่ใน Objective-C ในขณะที่สร้างคลาสใหม่ใน Swift ได้หรือไม่
974 objective-c  swift 

12
ฉันจะเปลี่ยนแปลงข้อ จำกัด การเคลื่อนไหวได้อย่างไร
ฉันกำลังอัปเดตแอปเก่าด้วยแอนAdBannerViewและเมื่อไม่มีโฆษณามันสไลด์ปิดหน้าจอ เมื่อมีโฆษณามันจะเลื่อนบนหน้าจอ สิ่งพื้นฐาน แบบเก่าฉันตั้งกรอบในบล็อกภาพเคลื่อนไหว รูปแบบใหม่ฉันมีIBOutletข้อ จำกัด ในการจัดวางอัตโนมัติซึ่งกำหนดYตำแหน่งในกรณีนี้คือระยะห่างจากด้านล่างของ superview และแก้ไขค่าคงที่: - (void)moveBannerOffScreen { [UIView animateWithDuration:5 animations:^{ _addBannerDistanceFromBottomConstraint.constant = -32; }]; bannerIsVisible = FALSE; } - (void)moveBannerOnScreen { [UIView animateWithDuration:5 animations:^{ _addBannerDistanceFromBottomConstraint.constant = 0; }]; bannerIsVisible = TRUE; } และแบนเนอร์เคลื่อนไหวอย่างที่คาดไว้ แต่ไม่มีภาพเคลื่อนไหว UPDATE:ฉันได้ดูWWDC 12 พูดคุยแนวปฏิบัติที่เป็นเลิศสำหรับเค้าโครงอัตโนมัติ Masteringซึ่งครอบคลุมภาพเคลื่อนไหว มันอธิบายถึงวิธีการปรับปรุงข้อ จำกัด โดยใช้CoreAnimation : ฉันได้ลองใช้โค้ดต่อไปนี้แล้ว แต่ได้ผลลัพธ์เหมือนกันทุกประการ: - …


30
จะตรวจสอบเวอร์ชั่น iOS ได้อย่างไร?
ฉันต้องการตรวจสอบว่าiOSรุ่นของอุปกรณ์มากกว่าที่3.1.3 ฉันลองทำหรือไม่เช่น: [[UIDevice currentDevice].systemVersion floatValue] แต่มันใช้งานไม่ได้ฉันแค่ต้องการ: if (version > 3.1.3) { } ฉันจะบรรลุสิ่งนี้ได้อย่างไร
848 ios  objective-c 

13
การสร้างตัวเลขสุ่มใน Objective-C
ฉันเป็นหัวหน้าส่วนใหญ่ของ Java และฉันต้องการวิธีในการสร้างตัวเลขสุ่มหลอกระหว่าง 0 และ 74 ใน Java ฉันจะใช้วิธีการ: Random.nextInt(74) ฉันไม่ได้สนใจในการอภิปรายเกี่ยวกับเมล็ดหรือการสุ่มอย่างแท้จริงเพียงวิธีที่คุณทำภารกิจเดียวกันใน Objective-C ฉันกำจัด Google แล้วและดูเหมือนว่ามีข้อมูลที่แตกต่างและขัดแย้งกันมากมาย

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