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

Cocoa เป็นกรอบการพัฒนาแอปพลิเคชันของ Apple สำหรับ macOS ซึ่งประกอบด้วย Foundation, Application Kit และ Core Data ใช้แท็ก "cocoa-touch" สำหรับคำถาม iOS

8
วิธีอัปเดตพ็อดเดียวโดยไม่ต้องสัมผัสการพึ่งพาอื่น ๆ
ฉันเข้าใจว่าคำสั่งต่อไปนี้จะอัปเดตพ็อดเดียว: pod update <podname>. อย่างไรก็ตามสิ่งนี้ยังอัพเดตการพึ่งพาของพ็อดอื่น ๆ (พ็อดที่ไม่รวมอยู่ในคำสั่ง update) ที่คุณติดตั้งไว้ก่อนหน้านี้ มีวิธีอัปเดตพ็อดเดียวและปล่อยให้การพึ่งพาอื่น ๆ
202 cocoa  cocoapods 

10
การพิมพ์ CSS: หลีกเลี่ยง DIV แบบครึ่งหน้าระหว่างหน้าหรือไม่
ฉันกำลังเขียนปลั๊กอินสำหรับชิ้นส่วนของซอฟต์แวร์ที่นำชุดใหญ่ของรายการและปรากฏใน HTML ใน WebView ใน Cocoa (ซึ่งใช้ WebKit เป็น renderer ดังนั้นโดยทั่วไปคุณสามารถสมมติว่าไฟล์ HTML นี้เปิดอยู่ Safari) DIV นั้นสร้างมาจากความสูงแบบไดนามิก แต่ก็ไม่ได้แปรเปลี่ยนไปมากนัก พวกเขามักจะประมาณ 200px อย่างไรก็ตามมีรายการเหล่านี้ประมาณหกแสนรายการต่อเอกสารฉันมีเวลาที่ยากลำบากในการพิมพ์ นอกจากว่าฉันจะโชคดีมีรายการที่ตัดครึ่งที่ด้านล่างและด้านบนของทุกหน้าและนั่นทำให้การใช้งานพิมพ์จริงยากมาก ฉันได้ลองใช้ตัวแบ่งหน้าก่อนหน้าตัวแบ่งหน้าแบ่งหน้าและชุดค่าผสมสามแบบที่ไม่มีประโยชน์ ฉันคิดว่าอาจเป็นเพราะ WebKit แสดงคำแนะนำไม่ถูกต้องหรืออาจเป็นเพราะฉันไม่เข้าใจวิธีใช้งาน ฉันต้องการความช่วยเหลือ ฉันจะป้องกันไม่ให้ครึ่งหนึ่งของ DIV ของฉันถูกพิมพ์ได้อย่างไรเมื่อพิมพ์?

11
วิธีรับข้อมูลพิกเซลจาก UIImage (Cocoa Touch) หรือ CGImage (Core Graphics)
ฉันมี UIImage (Cocoa Touch) จากนั้นฉันมีความสุขที่ได้รับ CGImage หรืออะไรก็ได้ที่คุณต้องการ ฉันต้องการเขียนฟังก์ชันนี้: - (int)getRGBAFromImage:(UIImage *)image atX:(int)xx andY:(int)yy { // [...] // What do I want to read about to help // me fill in this bit, here? // [...] int result = (red << 24) | (green << 16) | (blue << 8) | …

20
วิธีที่ดีที่สุดที่จะลบออกจาก NSMutableArray ขณะทำซ้ำ?
ในโกโก้ถ้าฉันต้องการวนลูปผ่าน NSMutableArray และลบวัตถุหลายอย่างที่ตรงกับเกณฑ์ที่กำหนดวิธีที่ดีที่สุดในการทำเช่นนี้คืออะไรโดยไม่ต้องรีสตาร์ทลูปทุกครั้งที่ฉันลบวัตถุออก ขอบคุณ แก้ไข: เพียงเพื่อชี้แจง - ฉันกำลังมองหาวิธีที่ดีที่สุดเช่นบางสิ่งที่สวยงามกว่าการอัปเดตดัชนีด้วยตนเองที่ฉันอยู่ เช่นใน C ++ ฉันสามารถทำได้ iterator it = someList.begin(); while (it != someList.end()) { if (shouldRemove(it)) it = someList.erase(it); }
194 objective-c  cocoa 

28
iOS - บิลด์ล้มเหลวด้วย CocoaPods ไม่พบไฟล์ส่วนหัว
ฉันมีโครงการ iOS ที่ใช้ CocoaPods ทุกอย่างทำงานได้อย่างราบรื่นจนกระทั่งผู้พัฒนารายอื่นเริ่มทำงานในโครงการเดียวกัน เขาทำการเปลี่ยนแปลงบางอย่าง (เฉพาะโค้ดเท่าที่ฉันรู้) และสร้างสาขาใหม่ใน repo ฉันตรวจสอบสาขาของเขาและพยายามสร้างมันขึ้นมา แต่ฉันได้รับข้อผิดพลาด: ไม่พบไฟล์ ASLogger / ASLogger.h แม้ว่าฉันจะลบโครงการทั้งหมดและทำสำเนาใหม่และใช้ 'ติดตั้งพ็อด' ความล้มเหลวในการสร้างยังคงมีอยู่ คุณมีความคิดใด ๆ ที่เป็นปัญหาได้หรือไม่ หากคุณต้องการข่าวสารเพิ่มเติมให้ถาม

12
วิธีที่ดีที่สุดในการสลับ NSMutableArray คืออะไร
หากคุณมีคุณNSMutableArrayจะสุ่มสับเปลี่ยนองค์ประกอบได้อย่างไร (ฉันมีคำตอบของฉันเองสำหรับเรื่องนี้ซึ่งโพสต์ด้านล่าง แต่ฉันใหม่กับ Cocoa และฉันสนใจที่จะรู้ว่ามีวิธีที่ดีกว่านี้หรือไม่) อัปเดต: ตามที่ระบุไว้โดย @Mukesh ตั้งแต่ iOS 10+ และ macOS 10.12+ มี-[NSMutableArray shuffledArray]วิธีการที่สามารถใช้เพื่อสลับ ดูhttps://developer.apple.com/documentation/foundation/nsarray/1640855-shuffledarray?language=objcสำหรับรายละเอียด (แต่โปรดทราบว่าสิ่งนี้จะสร้างอาร์เรย์ใหม่แทนที่การสับเปลี่ยนองค์ประกอบในที่)

6
ทำไมรหัสในการทดสอบหน่วยไม่สามารถหาทรัพยากรบันเดิลได้
รหัสบางตัวฉันเป็นการทดสอบหน่วยจำเป็นต้องโหลดไฟล์ทรัพยากร มันมีบรรทัดต่อไปนี้: NSString *path = [[NSBundle mainBundle] pathForResource:@"foo" ofType:@"txt"]; ในแอพมันทำงานได้ดี แต่เมื่อทำงานโดยกรอบการทดสอบหน่วยpathForResource:ส่งคืนค่าศูนย์หมายความว่ามันไม่สามารถค้นหาfoo.txtได้ ฉันแน่ใจว่าfoo.txtได้รวมอยู่ในขั้นตอนการสร้างCopy Bundle Resourcesของเป้าหมายการทดสอบหน่วยแล้วเหตุใดจึงไม่พบไฟล์

5
NULL vs nil ใน Objective-C
ในobserveValueForKeyPath:ofObject:change:context:- เหตุใดจึงใช้เอกสารNULLแทนnilเมื่อไม่ระบุตัวชี้บริบท
182 objective-c  cocoa  null 

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

6
วิธีสร้างแอปพลิเคชัน Menubar สำหรับ Mac
แก้ไข: นี่เป็นแอปพลิเคชัน menubar สำเร็จรูปที่ดีที่นี่ ( แหล่ง github ) โดยคำตอบนี้ ฉันสงสัยว่าจะทำแอปพลิเคชั่นแถบเมนูมีข้อกำหนดอะไรบ้าง? ฉันเห็นแอปพลิเคชันที่เรียบง่ายสำหรับแถบเมนูคือการเปิดลิงก์โดยใช้เบราว์เซอร์ของคุณฉันต้องการสร้างสิ่งที่คล้ายกับที่ นี่เป็นแอปพลิเคชั่นที่ฉันชอบทำคล้ายกัน
175 macos  cocoa  menubar 

4
วิธีที่ดีที่สุดในการจัดเก็บ NSDate ใน NSUserDefaults คืออะไร
มีสองวิธีในการจัดเก็บ NSDate ใน NSUserDefaults ที่ฉันเจอ ตัวเลือกที่ 1 - setObject: forKey: // Set NSDate *myDate = [NSDate date]; [[NSUserDefaults standardUserDefaults] setObject:myDate forKey:@"myDateKey"]; // Get NSDate *myDate = (NSDate *)[[NSUserDefaults standardUserDefaults] objectForKey:@"myDateKey"]; ตัวเลือก 2 - timeIntervalSince1970 // Set NSDate *myDate = [NSDate date]; NSTimeInterval myDateTimeInterval = [myDate timeIntervalSince1970]; [[NSUserDefaults standardUserDefaults] setFloat:myDateTimeInterval forKey:@"myDateKey"]; …

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

7
วิธีการเริ่มต้นสตริงจาก NSData ใน Swift
ฉันพยายามเริ่มต้นสตริงจากNSDataใน Swift ในเอกสาร NSString Cocoa Apple กำลังบอกว่าคุณต้องใช้สิ่งนี้: init(data data: NSData!, encoding encoding: UInt) แต่แอปเปิ้ลไม่ได้รวมตัวอย่างใด ๆ initสำหรับการใช้งานหรือสถานที่ที่จะนำ ฉันพยายามแปลงรหัสต่อไปนี้จาก Objective-C เป็น Swift NSString *string; string = [[NSString alloc] initWithData: data encoding: NSUTF8StringEncoding]; ฉันได้ลองใช้ซินแท็กซ์ที่เป็นไปได้มากมายเช่นต่อไปนี้ (แน่นอนว่าไม่ได้ทำงาน): var string:NSString! string = init(data: fooData,encoding: NSUTF8StringEncoding)
173 string  swift  cocoa  nsdata 

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


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