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

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

11
เป็นไปได้หรือไม่ที่จะตั้งโปรแกรม iPhone ใน C ++
ฉันทุกคนมีความหลากหลายทางภาษา แต่ Objective C นั้นบ้า ดังนั้นฉันจึงอยากรู้: เป็นไปได้ไหมที่จะเขียนโค้ดแอพ iPhone ด้วย C ++ ในขณะที่ใช้ Cocoa API ฯลฯ
124 c++  iphone  objective-c 

5
AES Encryption สำหรับ NSString บน iPhone
ใครช่วยชี้ทางที่ถูกต้องให้ฉันสามารถเข้ารหัสสตริงส่งคืนสตริงอื่นด้วยข้อมูลที่เข้ารหัสได้ไหม (ฉันได้ลองใช้การเข้ารหัส AES256 แล้ว) ฉันต้องการเขียนวิธีที่ใช้อินสแตนซ์ NSString สองอินสแตนซ์อันหนึ่งเป็นข้อความในการเข้ารหัสและอีกอันเป็น 'รหัสผ่าน' เพื่อเข้ารหัสด้วย - ฉันสงสัยว่าฉันต้องสร้าง คีย์การเข้ารหัสด้วยรหัสผ่านในลักษณะที่สามารถย้อนกลับได้หากรหัสนั้นมาพร้อมกับข้อมูลที่เข้ารหัส วิธีนี้ควรส่งคืน NSString ที่สร้างจากข้อมูลที่เข้ารหัส ฉันได้ลองใช้เทคนิคที่มีรายละเอียดในความคิดเห็นแรกในโพสต์นี้แล้ว แต่ฉันไม่มีโชคเลย CryptoExerciseของ Apple มีบางอย่างแน่นอน แต่ฉันไม่สามารถเข้าใจได้ ... ฉันเห็นการอ้างอิงถึงCCCryptมากมาย แต่ก็ล้มเหลวในทุกกรณีที่ฉันเคยใช้ ฉันจะต้องสามารถถอดรหัสสตริงที่เข้ารหัสได้ แต่ฉันหวังว่ามันจะง่ายเหมือน kCCEncrypt / kCCDecrypt

13
ฉันจะเพิ่ม NSAppTransportSecurity ลงในไฟล์ info.plist ของฉันได้อย่างไร
https://developer.apple.com/videos/wwdc/2015/?id=711 @ 5: 55 ดูเหมือนว่าจะเพิ่มสิ่งนี้ใน info.plist ไม่ได้ ไม่มีค่ามัน ฉันใช้ XCode เวอร์ชัน 7.0 เบต้า (7A121l) และกำลังทดสอบบน iOS9 เนื่องจากฉันไม่สามารถระบุได้ว่าต้องการ URL ใดเป็นพิเศษตามที่เห็นในวิดีโอฉันจึงได้รับ "App Transport Security ได้บล็อกการโหลดทรัพยากร HTTP (http: //) ที่ชัดเจนเนื่องจากไม่ปลอดภัยคุณสามารถกำหนดค่าข้อยกเว้นชั่วคราวผ่านทางแอปของคุณได้ ข้อผิดพลาดไฟล์ Info.plist " อย่างไรก็ตามดูเหมือนว่าฉันจะไม่สามารถกำหนดค่าได้ ความคิดใด ๆ ?
124 ios  objective-c  xcode  ios9 

8
NSPredicate: การกรองวัตถุตามวันของคุณสมบัติ NSDate
ฉันมีโมเดลข้อมูลหลักที่มีNSDateคุณสมบัติ ฉันต้องการกรองฐานข้อมูลตามวัน ฉันคิดว่าการแก้ปัญหาจะเกี่ยวข้องกับNSPredicateแต่ฉันไม่แน่ใจว่าจะรวมทั้งหมดเข้าด้วยกันได้อย่างไร ฉันรู้วิธีเปรียบเทียบวันของสองวันNSDateโดยใช้NSDateComponentsและNSCalendarแต่ฉันจะกรองด้วยNSPredicate? บางทีฉันอาจต้องสร้างหมวดหมู่ในNSManagedObjectคลาสย่อยของฉันที่สามารถส่งคืนวันที่เปล่าโดยมีเพียงปีเดือนและวัน จากนั้นฉันสามารถเปรียบเทียบสิ่งนั้นในNSPredicateไฟล์. นี่เป็นคำแนะนำของคุณหรือมีอะไรที่ง่ายกว่านี้

5
วิธีการโยนวัตถุใน Objective-C
มีวิธีการโยนวัตถุในวัตถุประสงค์ -c เหมือนกับวิธีการโยนวัตถุใน VB.NET หรือไม่? ตัวอย่างเช่นฉันกำลังพยายามทำสิ่งต่อไปนี้: // create the view controller for the selected item FieldEditViewController *myEditController; switch (selectedItemTypeID) { case 3: myEditController = [[SelectionListViewController alloc] init]; myEditController.list = listOfItems; break; case 4: // set myEditController to a diff view controller break; } // load the view [self.navigationController pushViewController:myEditController animated:YES]; …
123 objective-c 

3
พารามิเตอร์ที่สองของ NSLocalizedString () คืออะไร?
อะไรคือสิ่งที่*commentพารามิเตอร์ใน: NSString *NSLocalizedString(NSString *key, NSString *comment) ถ้าฉันทำสิ่งนี้: NSLocalizedString(@"Hello_World_Key", @"Hello World") และมี Localizable.strings สองเวอร์ชัน (อังกฤษและสเปน) แต่ละเวอร์ชันจำเป็นต้องมีรายการ: English.lproj/Localization.strings: @"Hello_World_Key" = @"Hello World"; Spanish.lproj/Localization.strings: @"Hello_World_Key" = @"Hola Mundo"; ภาษาอังกฤษไม่ซ้ำซ้อนเหรอ?

6
คุณสามารถเล่นวิดีโอ HTML5 อัตโนมัติบน iPad ได้หรือไม่?
<video>แท็กautoplay="autoplay"แอตทริบิวต์ทำงานได้ดีใน Safari เมื่อทดสอบบน iPad ต้องเปิดใช้งานวิดีโอด้วยตนเอง ฉันคิดว่ามันเป็นปัญหาในการโหลดดังนั้นฉันจึงทำการตรวจสอบสถานะของสื่อแบบวนซ้ำ: videoPlay: function(){ var me = this; console.log('STATE: ' + $("#periscopevideo").get(0).readyState); if ($("#periscopevideo").get(0).readyState != 4){ setTimeout(function(){me.videoPlay();}, 300); } else { $("#periscopevideo").get(0).play(); } } สถานะยังคงอยู่ที่0บน iPad ซาฟารีสก์ท็อปของฉันมันผ่านไป0, และในที่สุด1 4บน iPad จะเข้าถึงได้ก็ต่อ4เมื่อฉันแตะลูกศร "เล่น" ด้วยตนเอง ยิ่งไปกว่านั้นการโทร$("#periscopevideo").get(0).play()จากการคลิกผ่านonClickก็ใช้งานได้เช่นกัน Apple มีข้อ จำกัด ใด ๆ เกี่ยวกับการเล่นอัตโนมัติหรือไม่? (ฉันกำลังใช้ iOS 5+ อยู่)

1
แฟล็ก -all_load linker ทำอะไร
ฉันไม่พบว่าแฟล็ก -all_load ทำอะไรเมื่อคอมไพล์โค้ด Objective-C ฉันมีปัญหาบางอย่างในการอัปโหลดไบนารีไปยัง Apple พวกเขาบอกว่าเป็นเพราะฉันไม่ได้ใช้แฟล็กนี้ แต่โค้ดของฉันรวบรวมได้แม้ว่าจะไม่มีก็ตาม มีใครช่วยฉันได้ไหม ขอบคุณ

10
เหตุใด Objective-C จึงไม่สนับสนุนวิธีการส่วนตัว
ฉันเคยเห็นกลยุทธ์มากมายในการประกาศวิธีการกึ่งส่วนตัวในObjective-Cแต่ดูเหมือนจะไม่มีวิธีใดที่จะทำให้เป็นวิธีส่วนตัวอย่างแท้จริง ฉันยอมรับว่า แต่ทำไมถึงเป็นเช่นนั้น? โดยพื้นฐานแล้วทุกคำอธิบายที่ฉันพูดคือ "คุณทำไม่ได้ แต่นี่คือการประมาณอย่างใกล้ชิด" มีจำนวนของคำที่ใช้กับivars(สมาชิก) ที่ควบคุมขอบเขตของพวกเขาเช่น@private, ,@public @protectedเหตุใดจึงไม่สามารถทำได้สำหรับวิธีการเช่นกัน? ดูเหมือนว่าสิ่งที่รันไทม์ควรจะรองรับได้ มีปรัชญาพื้นฐานที่ฉันขาดหายไปหรือไม่? นี่คือเจตนา?


11
การตรวจจับการแตะที่ข้อความที่ระบุใน UITextView ใน iOS
ฉันมีUITextViewที่แสดงNSAttributedStringไฟล์. สตริงนี้มีคำที่ฉันต้องการทำให้แตะได้ดังนั้นเมื่อมีการแตะฉันจะถูกเรียกกลับเพื่อให้ฉันสามารถดำเนินการได้ ฉันทราบดีว่าUITextViewสามารถตรวจจับการแตะ URL และโทรกลับผู้รับมอบสิทธิ์ของฉันได้ แต่นี่ไม่ใช่ URL สำหรับฉันแล้วดูเหมือนว่าด้วย iOS 7 และพลังของ TextKit ตอนนี้น่าจะเป็นไปได้ แต่ฉันไม่พบตัวอย่างใด ๆ และฉันไม่แน่ใจว่าจะเริ่มจากตรงไหน ฉันเข้าใจว่าตอนนี้คุณสามารถสร้างแอตทริบิวต์ที่กำหนดเองในสตริงได้แล้ว (แม้ว่าฉันจะยังไม่ได้ทำก็ตาม) และบางทีสิ่งเหล่านี้อาจเป็นประโยชน์ในการตรวจจับว่ามีการแตะคำวิเศษหรือไม่? ไม่ว่าในกรณีใดฉันยังไม่ทราบวิธีสกัดกั้นการแตะและตรวจจับคำที่เกิดจากการแตะ โปรดทราบว่าไม่จำเป็นต้องใช้ความเข้ากันได้กับ iOS 6


4
Storyboard - อ้างถึง ViewController ใน AppDelegate
ลองพิจารณาสถานการณ์ต่อไปนี้: ฉันมีแอปที่ใช้สตอรี่บอร์ด ฉันเพิ่มออบเจ็กต์ ViewController ลงในสตอรี่บอร์ดเพิ่มไฟล์คลาสสำหรับ ViewController นี้ลงในโปรเจ็กต์และระบุชื่อของคลาสใหม่ในตัวตรวจสอบข้อมูลประจำตัว IB ตอนนี้ฉันจะอ้างถึง ViewController นี้โดยทางโปรแกรมจาก AppDelegate ได้อย่างไร ฉันได้สร้างตัวแปรกับคลาสที่เกี่ยวข้องและเปลี่ยนเป็นคุณสมบัติ IBOutlet แต่ฉันไม่เห็นวิธีใดที่จะสามารถอ้างถึง ViewController ใหม่ในโค้ดได้ - ความพยายามใด ๆ ที่จะ ctrl ลากการเชื่อมต่อไม่ได้ผล . เช่นภายใน AppDelegate ฉันสามารถไปที่ ViewController พื้นฐานได้เช่นนี้ (MyViewController*) self.window.rootViewController แต่ ViewController อื่น ๆ ที่อยู่ในสตอรี่บอร์ดล่ะ?

8
ตัวเลือกใน Objective-C?
อันดับแรกฉันไม่แน่ใจว่าฉันเข้าใจจริงๆว่าตัวเลือกคืออะไร จากความเข้าใจของฉันมันเป็นชื่อของวิธีการและคุณสามารถกำหนดให้กับคลาสประเภท 'SEL' จากนั้นเรียกใช้เมธอดเช่น responseToSelector เพื่อดูว่าผู้รับใช้เมธอดนั้นหรือไม่ ใครช่วยเสนอคำอธิบายที่ดีกว่านี้ได้ไหม ประการที่สองถึงจุดนี้ฉันมีรหัสต่อไปนี้: NSString *thing = @"Hello, this is Craig"; SEL sel = @selector(lowercaseString:); NSString *lower = (([thing respondsToSelector:sel]) ? @"YES" : @"NO"); NSLog (@"Responds to lowercaseString: %@", lower); if ([thing respondsToSelector:sel]) //(lower == @"YES") NSLog(@"lowercaseString is: %@", [thing lowercaseString]); อย่างไรก็ตามแม้ว่าthingจะเห็นได้ชัดว่าเป็น NSString ชนิดหนึ่งและควรตอบสนองต่อ lowercaseString แต่ฉันไม่สามารถรับเงื่อนไข …

7
ใช้ C ++ กับโกโก้แทน Objective-C หรือไม่?
ฉันต้องการเขียนแอปพลิเคชันที่ใช้ C ++ และ Cocoa frameworks เนื่องจาก Apple ไม่ได้ทำให้ Carbon 64-bit มีความสามารถ C ++ ดูเหมือนจะเป็นวานิลลาในการใช้งานบน Linux และ Windows แต่ใน MacOS X ดูเหมือนว่าจำเป็นต้องมีโค้ดเฉพาะของ Apple เพิ่มเติม (เช่นกระดาษห่อหุ้ม Obj-C) ดูเหมือนว่า Apple กำลังบังคับให้นักพัฒนาเขียนใน Objective-C แทนที่จะเป็น C ++ แม้ว่าฉันจะผิด ฉันกำลังพยายามหาเส้นทางในการเขียนโค้ดบน Mac ที่จะทำให้ข้ามแพลตฟอร์มได้ง่าย การเขียนโค้ดใน C ++ สำหรับ Linux / Windows แล้วเขียนซ้ำส่วนใหญ่ใน Objective-C จะไม่มีประสิทธิภาพมาก มีวิธีการเขียนโค้ดใน C ++ …

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