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

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

3
การใช้ NSCopying
ฉันได้อ่านNSCopyingเอกสารแล้ว แต่ยังไม่แน่ใจว่าจะนำสิ่งที่จำเป็นไปใช้ได้อย่างไร ชั้นเรียนของฉันVendor: @interface Vendor : NSObject { NSString *vendorID; NSMutableArray *availableCars; BOOL atAirport; } @property (nonatomic, copy) NSString *vendorID; @property (nonatomic, retain) NSMutableArray *availableCars; @property (nonatomic, assign) BOOL atAirport; - (id)initFromVehVendorAvailsDictionary:(NSDictionary *)vehVendorAvails; @end ชั้นมีอาร์เรย์ของวัตถุที่เรียกว่าVendorCar Carวัตถุของฉัน: @interface Car : NSObject { BOOL isAvailable; NSString *transmissionType; NSMutableArray *vehicleCharges; NSMutableArray *fees; } …

10
NSTableView ตามการดูที่มีแถวที่มีความสูงแบบไดนามิก
ฉันมีแอปพลิเคชันที่มีมุมมองตามอยู่NSTableViewในนั้น ในมุมมองตารางนี้ฉันมีแถวที่มีเซลล์ที่มีเนื้อหาประกอบด้วยหลายแถวที่NSTextFieldเปิดใช้งานการตัดคำ NSTextFieldขนาดของแถวที่จำเป็นในการแสดงเซลล์จะแตกต่างกันไปขึ้นอยู่กับเนื้อหาที่เป็นต้นฉบับ ฉันรู้ว่าฉันสามารถใช้NSTableViewDelegateวิธีนี้ได้ - tableView:heightOfRow:เพื่อคืนความสูง แต่ความสูงจะถูกกำหนดตามการตัดคำที่ใช้ในไฟล์NSTextField. การตัดคำในNSTextFieldทำนองเดียวกันขึ้นอยู่กับความกว้างของNSTextField... ซึ่งกำหนดโดยความกว้างของNSTableView. เอาล่ะ…ฉันเดาว่าคำถามของฉันคือ…รูปแบบการออกแบบที่ดีสำหรับสิ่งนี้คืออะไร? ดูเหมือนว่าทุกสิ่งที่ฉันพยายามจะกลายเป็นเรื่องยุ่งเหยิงที่ซับซ้อน เนื่องจาก TableView ต้องการความรู้เกี่ยวกับความสูงของเซลล์ในการจัดวาง ... และNSTextFieldความต้องการความรู้เกี่ยวกับเลย์เอาต์ของมันเพื่อกำหนดการตัดคำ ... และเซลล์ต้องการความรู้เกี่ยวกับการตัดคำเพื่อกำหนดความสูง ... มันเป็นระเบียบแบบวงกลม ... และก็ขับรถฉันบ้า ข้อเสนอแนะ? หากเป็นเรื่องสำคัญผลลัพธ์สุดท้ายจะมีการแก้ไขNSTextFieldsซึ่งจะปรับขนาดเพื่อปรับให้เข้ากับข้อความภายใน ฉันมีสิ่งนี้ที่ใช้งานได้ในระดับมุมมองแล้ว แต่มุมมองตารางยังไม่ได้ปรับความสูงของเซลล์ ฉันคิดว่าเมื่อได้ปัญหาความสูงแล้วฉันจะใช้ - noteHeightOfRowsWithIndexesChangedวิธีการเพื่อแจ้งให้มุมมองของตารางทราบว่ามีการเปลี่ยนแปลงความสูง ... แต่ก็ยังคงถามผู้ร่วมประชุมเกี่ยวกับความสูง ... ด้วยเหตุนี้ความไม่แน่ใจของฉัน ขอบคุณล่วงหน้า!

5
ฉันจะหาแหล่งที่มาของคำเตือน coretext ที่เกี่ยวข้องกับตัวอักษรใน IOS13 ได้อย่างไร
ทำงานกับการอัปเดตแอปของฉันฉันสังเกตว่าฉันได้รับคำเตือนมากมายในบันทึกเมื่อใช้งานแอพใน Xcode 11.2 บน IOS13 CoreText note: ไคลเอนต์ร้องขอชื่อ ".FUI-Regular" จะได้รับ TimesNewRomanPSMT แทนที่จะเป็นแบบอักษรที่ต้องการ การเข้าถึงแบบอักษร UI ของระบบทั้งหมดควรผ่าน API ที่เหมาะสมเช่น CTFontCreateUIFontForLanguage () หรือ + [UIFont systemFontOfSize:] ฉันขุดประมาณเล็กน้อยและพบคำพูดนี้จาก WWDC: ดังที่ได้กล่าวไว้ในเซสชัน WWDC จำนวนมากชื่อฟอนต์ที่ขึ้นต้นด้วยคำนำหน้านั้นไม่ควรใช้โดยตรง ฉันเป็นตัวของตัวเองโดยเฉพาะการใช้ IB และไส้ปากกาในการตั้งค่าแบบอักษรสำหรับฟิลด์ข้อความ ฯลฯ และไม่มีการอ้างอิงถึง "SFUI- ปกติ" ในรหัสของฉันที่ใดก็ได้ดังนั้นฉันไม่แน่ใจว่าจะหาเหตุผลจริงสำหรับคำเตือนเหล่านี้ได้อย่างไร ประมาณ 20-30 แถวในบันทึก) ไม่มีใครมีเคล็ดลับเกี่ยวกับวิธีที่ฉันสามารถหาคำเตือนที่มาจากและวิธีการแก้ไขได้อย่างไร

1
เปลี่ยน modalPresentationStyle บน iOS13 บนอินสแตนซ์ UIViewController ทั้งหมดในคราวเดียวโดยใช้วิธีการที่รวดเร็ว
[คำถาม & คำตอบ] เป็นไปได้ไหมที่จะเปลี่ยนUIViewController.modalPresentationStyleค่าทั่วโลกใน iOS 13 ดังนั้นมันจะทำงานเหมือนที่เคยเป็นใน iOS 12 (หรือเก่ากว่า)? ทำไม? ใน iOS SDK 13 ค่าเริ่มต้นของUIViewController.modalPresentationStyleสถานที่ให้บริการมีการเปลี่ยนแปลงจากUIModalPresentationFullScreenไปUIModalPresentationAutomaticซึ่งก็คือเท่าที่ผมรู้ว่ามีมติUIModalPresentationPageSheetในอุปกรณ์ iOS หรืออย่างน้อยบน iPhone เนื่องจากโครงการที่ฉันทำงานมาหลายปีมีขนาดค่อนข้างใหญ่จึงมีสถานที่นับสิบแห่งที่นำเสนอตัวควบคุมมุมมอง สไตล์การนำเสนอใหม่ไม่ตรงกับการออกแบบแอพของเราเสมอไปและบางครั้งก็ทำให้ UI ขาดหายไป นี่คือเหตุผลที่เราตัดสินใจเปลี่ยนUIViewController.modalPresentationStyleกลับไปUIModalPresentationFullScreenเป็นรุ่นก่อนหน้าของ iOS13 SDK แต่การเพิ่มviewController.modalPresentationStyle = UIModalPresentationFullScreenก่อนโทรpresentViewController:animated:completion:ในทุก ๆ สถานที่ที่มีการนำเสนอตัวควบคุมดูเหมือน overkill ยิ่งไปกว่านั้นเรามีเรื่องที่ต้องทำอย่างจริงจังมากขึ้นในเวลานั้นซึ่งเป็นเหตุผลว่าทำไมในขณะนี้หรืออย่างน้อยก็จนกว่าเราจะอัพเดตการออกแบบและแก้ไขปัญหา UI ทั้งหมดเราตัดสินใจที่จะใช้วิธีการแบบว่องไว วิธีแก้ไขปัญหาการทำงานนั้นถูกนำเสนอในคำตอบของฉัน แต่ฉันจะขอบคุณข้อเสนอแนะใด ๆ ที่บอกฉันว่าสิ่งที่ผิดพลาดหรือผลที่ตามมาของวิธีการดังกล่าวอาจจะเป็น
11 ios  objective-c  swift  ios13 

5
didReceiveRemoteNotification ไม่ได้เรียกใน iOS 13.3 เมื่อแอปอยู่ในพื้นหลัง
ฉันกำลังต่อสู้กับหัวของฉัน ฉันกำลังใช้การแจ้งเตือนแบบพุช ทุกอย่างทำงานได้ดี (ได้รับการผลักดันอัปเดตตราสัญลักษณ์) แต่ภายใต้ iOS 13.3 แอปพลิเคชันวิธีการ (_: didReceiveRemoteNotification: fetchCompletionHandler :) จะไม่ถูกเรียกเมื่อแอปอยู่ในพื้นหลัง หากแอปอยู่เบื้องหน้าหรือใช้อุปกรณ์ iOS 12 จะมีการเรียกใช้เมธอด ฉันลงทะเบียนสำหรับการแจ้งเตือนแบบพุชด้วยวิธีต่อไปนี้: [[UNUserNotificationCenter currentNotificationCenter] requestAuthorizationWithOptions:(UNAuthorizationOptionBadge | UNAuthorizationOptionSound | UNAuthorizationOptionAlert) completionHandler:^(BOOL granted, NSError * _Nullable error) { if (granted) { dispatch_async(dispatch_get_main_queue(), ^{ [[UIApplication sharedApplication] registerForRemoteNotifications]; }); } }]; เพย์โหลดถูกตั้งค่าเป็นต่อไปนี้ {"aps": { "badge": 10, "alert": "test", …

1
- [UIThreadSafeNode canPerformAction: withSender:]: ตัวเลือกที่ไม่รู้จักถูกส่งไปยังอินสแตนซ์
ฉันกำลังเผชิญหน้ากับความผิดพลาดนี้ในแอพ iOS ของฉัน Fatal Exception: NSInvalidArgumentException 0 CoreFoundation 0x1b9079c30 __exceptionPreprocess 1 libobjc.A.dylib 0x1b8d940c8 objc_exception_throw 2 CoreFoundation 0x1b8f77fc0 -[NSOrderedSet initWithSet:copyItems:] 3 CoreFoundation 0x1b907e3d4 ___forwarding___ 4 CoreFoundation 0x1b9080570 _CF_forwarding_prep_0 5 UIKitCore 0x1bcf33444 -[UIKeyboardImpl deleteForwardAndNotify:] 6 UIKitCore 0x1bcf39154 __57-[UIKeyboardImpl acceptPredictiveInput:executionContext:]_block_invoke 7 UIKitCore 0x1bcf5b0c8 -[UIKeyboardTaskExecutionContext returnExecutionToParentWithInfo:] 8 UIKitCore 0x1bcf366ec __100-[UIKeyboardImpl addWordTerminator:afterSpace:afterAcceptingCandidate:elapsedTime:executionContext:]_block_invoke 9 UIKitCore 0x1bcf5b0c8 …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.