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

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

16
ฉันจะคลิกปุ่มที่อยู่ด้านหลังโปร่งใสของ UIView ได้อย่างไร
สมมติว่าเรามีตัวควบคุมมุมมองที่มีหนึ่งมุมมองย่อย มุมมองย่อยใช้ศูนย์กลางของหน้าจอโดยมีระยะขอบ 100 px ทุกด้าน จากนั้นเราจะเพิ่มสิ่งเล็ก ๆ น้อย ๆ มากมายให้คลิกในมุมมองย่อยนั้น เราใช้มุมมองย่อยเพื่อใช้ประโยชน์จากเฟรมใหม่เท่านั้น (x = 0, y = 0 ภายในมุมมองย่อยเป็นจริง 100,100 ในมุมมองพาเรนต์) จากนั้นจินตนาการว่าเรามีบางสิ่งที่อยู่ด้านหลังมุมมองย่อยเช่นเมนู ฉันต้องการให้ผู้ใช้สามารถเลือก "สิ่งเล็ก ๆ น้อย ๆ " ในมุมมองย่อยได้ แต่ถ้าไม่มีสิ่งใดฉันต้องการให้แตะผ่าน (เนื่องจากพื้นหลังมีความชัดเจนอยู่แล้ว) ไปยังปุ่มที่อยู่ด้านหลัง ฉันจะทำสิ่งนี้ได้อย่างไร ดูเหมือนว่า touchegegan จะผ่าน แต่ปุ่มไม่ทำงาน

4
ไวยากรณ์ของวิธีการใน Objective-C
บางคนสามารถอธิบายไวยากรณ์การประกาศวิธีนี้ให้ฉันได้ไหม ในฟังก์ชั่นนี้จำนวนแถวของ UIPickerView (สล็อตแมชชีน UI บน iPhone) จะถูกส่งกลับ จากความเข้าใจของฉันวิธีการที่เรียกว่า ' pickerView' และส่งกลับ NSInteger มันส่งผ่านตัวชี้ไปที่ UIPickerview ที่เรียกว่า ' pickerView' ... ก่อนทำไมวิธีการที่เรียกว่าชื่อเดียวกันกับพารามิเตอร์? ถัดไปมีพารามิเตอร์ NSInteger เรียกว่าองค์ประกอบที่บอกเราว่าองค์ประกอบใดที่เรากำลังนับแถว ตรรกะในการตัดสินใจว่าจะอยู่ในส่วนใดของวิธีการ 'คือnumberOfRowsInComponentอะไร ดูเหมือนว่าจะอธิบายค่าที่เราส่งคืน แต่มันอยู่ตรงกลางของพารามิเตอร์ - (NSInteger) pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component { if (component == kStateComponent) return [self.states count]; return[self.zips count]; }

4
ทำไมผู้แทน Objective-C ถึงได้รับมอบหมายคุณสมบัติแทนการเก็บรักษา?
ฉันท่องผ่านบล็อกที่ยอดเยี่ยมซึ่งดูแลโดย Scott Stevenson และฉันพยายามเข้าใจแนวคิดพื้นฐานของ Objective-C ในการมอบหมายผู้มอบหมาย 'มอบหมาย' คุณสมบัติ 'เทียบกับ' รักษา ' หมายเหตุทั้งคู่เหมือนกันในสภาพแวดล้อมที่เก็บขยะ ฉันส่วนใหญ่เกี่ยวข้องกับสภาพแวดล้อมที่ไม่ใช่ GC (เช่น: iPhone) โดยตรงจากบล็อกของสกอตต์: "คีย์เวิร์ด assign จะสร้าง setter ซึ่งกำหนดค่าให้กับตัวแปรอินสแตนซ์โดยตรงแทนที่จะคัดลอกหรือเก็บไว้ซึ่งจะดีที่สุดสำหรับประเภทดั้งเดิมเช่น NSInteger และ CGFloat หรือวัตถุที่คุณไม่ได้เป็นเจ้าของโดยตรงเช่น" หมายความว่าคุณไม่ได้เป็นเจ้าของวัตถุผู้รับมอบสิทธิ์โดยตรง ฉันมักจะรักษาผู้ได้รับมอบหมายของฉันเพราะถ้าฉันไม่ต้องการให้พวกเขาออกไปสู่ห้วงลึก ฉันมักจะนามธรรม UITableViewController ห่างจากแหล่งข้อมูลที่เกี่ยวข้องและผู้ได้รับมอบหมายด้วย ฉันยังคงวัตถุเฉพาะนั้นไว้ ฉันต้องการให้แน่ใจว่ามันจะไม่หายไปดังนั้น UITableView ของฉันจะมีตัวแทนอยู่รอบ ๆ เสมอ บางคนสามารถอธิบายเพิ่มเติมว่าที่ไหน / ทำไมฉันจึงผิดฉันจึงสามารถเข้าใจกระบวนทัศน์ทั่วไปนี้ในการเขียนโปรแกรม Objective-C 2.0 ของการใช้คุณสมบัติมอบหมายให้กับผู้ได้รับมอบหมายแทนที่จะเก็บไว้? ขอบคุณ!

2
ปฏิบัติที่ดีที่สุด? - Array / Dictionary เป็นคุณสมบัติของคอร์ Data Entity [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว ปรับปรุงคำถามนี้ ฉันยังใหม่กับ Core Data ฉันสังเกตเห็นว่าประเภทคอลเลกชันไม่สามารถใช้งานได้เป็นประเภทแอททริบิวต์และต้องการทราบว่าวิธีที่มีประสิทธิภาพมากที่สุดในการจัดเก็บข้อมูลประเภทอาเรย์ / พจนานุกรมเป็นแอตทริบิวต์ (เช่นองค์ประกอบที่ประกอบขึ้นเป็นที่อยู่เช่นถนนเมือง ฯลฯ ) ไม่ต้องการเอนทิตีที่แยกต่างหากและจัดเก็บเป็นพจนานุกรม / อาร์เรย์ได้สะดวกกว่าแอททริบิวต์ / ฟิลด์ที่แยกต่างหาก) ขอบคุณ.

19
บอร์ดโครงเรื่องไม่มีตัวควบคุมมุมมองพร้อมตัวระบุ
ฉันได้รับข้อผิดพลาดต่อไปนี้: Storyboard (<UIStoryboard: 0x7ebdd20>) doesn't contain a view controller with identifier 'drivingDetails' นี่คือรหัส: - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { UIViewController *controller = [self.storyboard instantiateViewControllerWithIdentifier:@"drivingDetails"]; controller.title = [[dao libraryItemAtIndex:indexPath.row] valueForKey:@"name"]; [self.navigationController pushViewController:controller animated:YES]; } เราได้ตั้งไว้แล้วidentifierในUIStoryboardแต่ฉันยังคงได้รับข้อผิดพลาดนี้

8
ViewDidAppear ไม่ได้ถูกเรียกเมื่อเปิดแอปจากพื้นหลัง
ฉันมีตัวควบคุมมุมมองซึ่งค่าของฉันคือ 0 (ฉลาก) และเมื่อฉันเปิดตัวควบคุมมุมมองนั้นจากอีกตัวหนึ่งViewControllerฉันได้viewDidAppearตั้งค่าเป็น 20 บนฉลาก มันทำงานได้ดี แต่เมื่อผมปิด app ของฉันและมากกว่าอีกครั้งฉันเปิด app ของฉัน แต่ค่าไม่เปลี่ยนแปลงเพราะviewDidLoad, viewDidAppearและviewWillAppearไม่มีอะไรที่ได้รับการเรียก ฉันจะโทรหาได้อย่างไรเมื่อเปิดแอพ ฉันต้องทำอะไรจากapplicationDidBecomeActiveหรือไม่
175 ios  objective-c  iphone  xcode  swift 

11
ช่องโต้ตอบการอนุญาตตำแหน่งปัจจุบันจะหายไปเร็วเกินไป
แอพของฉันรับตำแหน่งของผู้ใช้รับพิกัดและให้ระยะทางไปหรือกลับจากปลายทางหรือที่มาของพวกเขา จุดหมายปลายทางที่เป็นไปได้ทั้งหมดเหล่านี้จะแสดงในมุมมองตารางดังนั้นฉันจะให้ผู้ใช้ประสานงานพร้อมกันกับการเติมตาราง สิ่งเดียวคือมุมมองการแจ้งเตือนที่ขอตำแหน่งของผู้ใช้จะปรากฏขึ้นและหายไปอย่างรวดเร็วจึงเป็นไปไม่ได้ที่จะคลิก! มีวิธีใดที่จะแสดงการแจ้งเตือนนี้ด้วยตนเองเมื่อแอปโหลดครั้งแรก ฉันพยายามรับตำแหน่งของผู้ใช้เมื่อแอปโหลดขึ้นเพื่อลองและบังคับให้การแจ้งเตือนปรากฏขึ้น แต่นั่นไม่ได้ผล

13
วิธีที่ดีที่สุดในการแก้ไขการชนกันของเนมสเปซ Objective-C คืออะไร
วัตถุประสงค์ -C ไม่มีเนมสเปซ มันเหมือนกับ C ทุกอย่างอยู่ในเนมสเปซส่วนกลางเดียว วิธีปฏิบัติทั่วไปคือการเติมคำนำหน้าคลาสด้วยชื่อย่อเช่นถ้าคุณทำงานที่ IBM คุณสามารถใช้คำนำหน้าด้วย "IBM" ถ้าคุณทำงานให้ Microsoft คุณสามารถใช้ "MS"; และอื่น ๆ บางครั้งชื่อย่ออ้างถึงโครงการเช่น Adium นำหน้าคลาสด้วย "AI" (เนื่องจากไม่มี บริษัท ใดอยู่ด้านหลังซึ่งคุณสามารถใช้ชื่อย่อได้) คำนำหน้าของ Apple คลาสที่มี NS และบอกว่าคำนำหน้านี้สงวนไว้สำหรับ Apple เท่านั้น จนถึงตอนนี้ก็ดี แต่การเพิ่มตัวอักษร 2 ถึง 4 ตัวต่อท้ายชื่อคลาสด้านหน้าเป็นเนมสเปซที่ จำกัด มาก เช่น MS หรือ AI อาจมีความหมายที่แตกต่างกันโดยสิ้นเชิง (เช่น AI เป็นปัญญาประดิษฐ์เป็นต้น) และผู้พัฒนารายอื่นอาจตัดสินใจใช้และสร้างคลาสที่มีชื่อเท่าเทียมกัน บางชน namespace เอาล่ะถ้านี่เป็นการชนกันระหว่างคลาสของคุณเองกับหนึ่งในเฟรมเวิร์กภายนอกที่คุณใช้อยู่คุณสามารถเปลี่ยนการตั้งชื่อคลาสของคุณได้โดยง่าย …


12
วิธีสร้างเส้นขอบใน UIButton
ฉันใช้ปุ่มที่กำหนดเองในแอพชื่อ "addButton" และฉันต้องการกำหนดเส้นขอบด้วยสีขาวฉันจะได้เส้นขอบสีขาวรอบปุ่มที่กำหนดเองได้อย่างไร
174 ios  objective-c 

9
Cocoa Core Data วิธีที่มีประสิทธิภาพในการนับเอนทิตี
ฉันอ่านมากเกี่ยวกับ Core Data .. แต่วิธีที่มีประสิทธิภาพในการนับจำนวน Entity-Type (เช่น SQL สามารถทำได้ด้วยการเลือก SELECT (1) ... ) ตอนนี้ฉันเพิ่งแก้ไขภารกิจนี้ด้วยการเลือกทั้งหมดด้วยNSFetchedResultsControllerและรับจำนวนNSArray! ฉันแน่ใจว่านี่ไม่ใช่วิธีที่ดีที่สุด ...

24
ข้อความแสดงข้อผิดพลาด '_BSMachError: (os / kern) ความสามารถที่ไม่ถูกต้อง (20)'
โปรดทราบว่าข้อความแสดงข้อผิดพลาดนี้อยู่ในระดับค่อนข้างต่ำดังนั้นจึงมีการครอบตัดด้วยเหตุผลที่แตกต่างกันในสถานการณ์ต่างๆ หากคุณมีสถานการณ์ที่ไม่ได้กล่าวถึงในหนึ่งในคำตอบด้านล่างโปรดลองเพิ่มสถานการณ์ของคุณด้วยดังนั้นอาจเป็นคำตอบหลักสำหรับสถานการณ์ต่างๆที่ทำให้เกิดข้อความแสดงข้อผิดพลาดนี้ แก้ไข 10 พ.ย. 2558นอกจากนี้โปรดทราบว่าฉันทำเครื่องหมายคำตอบของฉันเองว่าเป็นคำตอบ แต่ก่อนหน้านี้มีใครโพสต์ ฉันเดาว่าไม่ควรทำเครื่องหมายว่าเป็นคำตอบจริง ๆ เพราะอย่างที่เราเห็นด้านล่าง ... ข้อผิดพลาดนี้ไม่มีคำตอบเดียวเพราะระดับต่ำมาก ฉันกำลังวิ่ง iOS 9.0 Simulator XCode 7.0 ทุกอย่างทำงานได้ดีเมื่อวานนี้ วันนี้หลังจากทำงานเกี่ยวกับการหมุนสิ่งต่าง ๆ ฉันเริ่มรับข้อผิดพลาดนี้ในผลลัพธ์คอนโซลของฉันเมื่อฉันเรียกใช้แอพใน Simulator และฉันหมุนมัน _BSMachError: (os / kern) ความสามารถที่ไม่ถูกต้อง (20) _BSMachError: (os / kern) ชื่อที่ไม่ถูกต้อง (15) - ฉันลบโฟลเดอร์บิลด์ฉันได้ล้างโฟลเดอร์ข้อมูลที่ได้มาแล้ว - ฉันรีเซ็ตตัวจำลอง ฉันทำงานกับ UIViewController viewWillLayoutSubviews UIViewController viewWillTransitionToSize:... ฉันกำลังตรวจสอบการตั้งค่า 'การวาด' ที่หลากหลายบนตัวตรวจสอบแอตทริบิวต์ใน IB ฉันยังสร้างหมวดหมู่ยูทิลิตี้บน …
173 ios  objective-c  xcode7 

10
นิพจน์ทั่วไปในแอปพลิเคชัน Objective-C Cocoa
Googling เริ่มต้นบ่งชี้ว่าไม่มีวิธีในการทำนิพจน์ปกติในแอปพลิเคชัน Objective-C Cocoa ดังนั้นสี่คำถาม: เป็นเรื่องจริงเหรอ? คุณล้อเล่นกับฉันไหม ตกลงแล้วมีไลบรารีโอเพนซอร์ซดีๆที่คุณแนะนำไหม มีวิธีใดบ้างที่จะเข้าใกล้พอโดยไม่ต้องนำเข้าห้องสมุดบางทีอาจใช้คลาส NSScanner
173 objective-c  regex  cocoa 

16
ได้สีที่สดใสและสดใสสำหรับ iOS 7 โปร่งแสง UINavigationBar
iOS 7.1 UPDATE : ดูเหมือนว่าวิธีแก้ไขปัญหาสำหรับการปรับเปลี่ยนช่องอัลฟาใน UINavigationBar นั้นถูกข้ามไปในการอัพเดทนี้ ตอนนี้ทางออกที่ดีที่สุดดูเหมือนจะเป็นเพียง 'จัดการกับมัน' และหวังว่าสีที่คุณเลือกจะทำให้เอฟเฟกต์โปร่งแสง ฉันยังคงมองหาวิธีในการแก้ไขปัญหานี้ iOS 7.0.3 UPDATE : ไลบรารี GitHub ที่เราสร้างได้รับการอัปเดตเพื่อแก้ไขปัญหานี้เล็กน้อยเมื่อใช้ iOS 7.0.3 น่าเสียดายที่ไม่มีสูตรเวทย์มนตร์ที่จะรองรับทั้งสีที่สร้างใน iOS 7.0.2 และก่อนหน้านี้และ iOS 7.0.3 ดูเหมือนว่าแอปเปิลจะปรับปรุงความอิ่มตัวของสี แต่ด้วยค่าความทึบ (เนื่องจากความโปร่งแสงเบลอนั้นขึ้นอยู่กับระดับความทึบ) ฉันพร้อมกับคนอื่นไม่กี่คนกำลังทำงานเพื่อสร้างการแก้ไขที่ดีกว่าสำหรับสิ่งนี้ ฉันแน่ใจว่าคนจำนวนมากได้เจอปัญหาที่ iOS 7 มีแนวโน้มที่จะทำให้สีของ UINavigationBar ที่โปร่งแสงหมดไป เป้าหมายของฉันคือการบรรลุ UINavigationBar ด้วยสีอ่อนนี้ แต่โปร่งแสง: อย่างไรก็ตามด้วยความโปร่งใสฉันได้รับสิ่งนี้ มุมมองพื้นหลังเป็นสีขาวซึ่งฉันเข้าใจจะทำให้มุมมองนี้เบาขึ้น: มีวิธีใดบ้างที่จะทำให้ได้สีดั้งเดิมในขณะที่ยังมีความโปร่งแสงอยู่? ฉันสังเกตว่า Facebook สามารถทำให้แถบของพวกเขากลายเป็นสีฟ้าที่ร่ำรวยดังที่แสดงไว้ที่นี่: .. ดังนั้นฉันรู้ว่าจะต้องมีวิธีใด เห็นได้ชัดว่าพื้นหลังสร้างความแตกต่างได้ที่นี่ แต่เนื้อหาส่วนใหญ่ของพวกเขายังเป็นสีเทา …

30
ลบพื้นที่ว่างก่อนเซลล์ใน UITableView
ขณะนี้ฉันพยายามวางUITableViewในตำแหน่งอื่นแทนที่จะอยู่ด้านบนของตัวควบคุมมุมมองของฉัน ด้วยสิ่งนี้กล่าวว่ามันพยายามเพิ่มส่วนหัวในด้านบนเพื่อบัญชีสำหรับแถบนำทาง แต่ไม่จำเป็นเพราะฉันไม่มีที่ด้านบนของตัวควบคุมของฉัน ถ้าฉันวางมุมบนซ้ายของUITableViewที่ฉันต้องการให้เซลล์อยู่มันจะไม่ใส่เซลล์ที่นั่น: ตอนนี้ถ้าฉันเพิ่งย้ายมุมมองตารางขึ้นเพื่อให้เซลล์อยู่ในตำแหน่งที่ถูกต้องฉันจะได้รับปัญหาที่แตกต่าง - เซลล์สามารถเลื่อนขึ้นไปที่นั่นเมื่อเลื่อน (นี่คือนิ้วของฉันเหนือตัวควบคุมการนำทาง): เมื่อฉันปล่อยไปใช่ - เซลล์จะไปทางด้านล่างของแถบค้นหา แต่นี่เป็นปัญหาที่เห็นได้ชัดว่าคุณสามารถนำเซลล์เหล่านั้นมาอยู่เหนือมันได้ ฉันจะทำสิ่งนี้อย่างไร มีวิธีง่ายกว่านี้ไหม?

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