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

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


25
การสร้างมุมมองภาพซ้อนทับเบลอ
ในแอพ Music ของ iOS ใหม่เราสามารถเห็นปกอัลบั้มด้านหลังมุมมองที่พร่ามัว จะทำเช่นนั้นได้อย่างไร? ฉันอ่านเอกสารแล้ว แต่ไม่พบสิ่งใดที่นั่น



19
ฉันจะขอ HTTP ใน Swift ได้อย่างไร
ฉันอ่านThe Programming Language Swiftโดย Apple ใน iBooks แต่ไม่สามารถหาวิธีที่จะทำให้คำขอ HTTP (เช่น cURL) ใน Swift ฉันจำเป็นต้องนำเข้าคลาส Obj-C หรือฉันต้องนำเข้าไลบรารีเริ่มต้นหรือไม่ หรือเป็นไปไม่ได้ที่จะทำการร้องขอ HTTP โดยยึดตามรหัส Swift ดั้งเดิม

8
วัตถุประสงค์ -C ARC: แข็งแรงเทียบกับการคงไว้และอ่อนแอเทียบกับการมอบหมาย
มีสองคุณลักษณะการจัดการหน่วยความจำใหม่สำหรับคุณสมบัตินำโดย ARC มีและstrongweak นอกเหนือจากcopyสิ่งที่เห็นได้ชัดว่าแตกต่างอย่างสิ้นเชิงมีความแตกต่างระหว่างstrongvs retainและweakvs assign? จากความเข้าใจของฉันความแตกต่างเพียงอย่างเดียวที่นี่คือweakจะกำหนดnilให้กับตัวชี้ในขณะที่assignไม่ได้ซึ่งหมายความว่าโปรแกรมจะหยุดทำงานเมื่อฉันส่งข้อความไปยังตัวชี้เมื่อมีการเปิดตัว แต่ถ้าฉันใช้weakสิ่งนี้จะไม่เกิดขึ้นเพราะข้อความที่ส่งถึงnilจะไม่ทำอะไรเลย ผมไม่ทราบว่าเกี่ยวกับความแตกต่างใด ๆ ระหว่างและstrongretain มีเหตุผลใดบ้างที่ฉันควรใช้assignและretainในโครงการใหม่หรือเป็นประเภทที่ถูกคัดค้าน?

7
UILongPressGestureRecognizer จะถูกเรียกสองครั้งเมื่อกดลง
ฉันกำลังตรวจสอบว่าผู้ใช้กดลงไป 2 วินาทีหรือไม่: UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(handleLongPress:)]; longPress.minimumPressDuration = 2.0; [self addGestureRecognizer:longPress]; [longPress release]; นี่คือวิธีจัดการกดแบบยาว: -(void)handleLongPress:(UILongPressGestureRecognizer*)recognizer{ NSLog(@"double oo"); } ข้อความ "double oo" ถูกพิมพ์สองครั้งเมื่อฉันกดลงนานกว่า 2 วินาที ทำไมนี้ ฉันจะแก้ไขได้อย่างไร

4
วิธีเขียนแอป iOS ใน C เท่านั้น
ฉันอ่านที่นี่เรียนรู้ C ก่อน Objective-C? ปกติแล้วฉันจะแทนที่รหัส Obj-C บางส่วนด้วยรหัสบริสุทธิ์ (หลังจากทั้งหมดคุณสามารถผสมได้มากเท่าที่คุณต้องการเนื้อหาของวิธี Obj-C สามารถเป็นรหัส C บริสุทธิ์ทั้งหมด) มันเป็นเรื่องจริงเหรอ? เป็นไปได้หรือไม่ที่จะสร้างแอพ iPhone ในภาษา C อย่างแท้จริง?


12
วิธีที่ดีที่สุดในการกำหนดวิธีการส่วนตัวสำหรับคลาสใน Objective-C
ฉันเพิ่งเริ่มเขียนโปรแกรม Objective-C และมีพื้นหลังใน Java สงสัยว่าคนเขียนโปรแกรม Objective-C จัดการกับวิธีส่วนตัว ฉันเข้าใจว่าอาจมีอนุสัญญาและนิสัยหลายอย่างและคิดถึงคำถามนี้ในฐานะผู้รวบรวมเทคนิคที่ดีที่สุดที่ผู้คนใช้ในการจัดการกับวิธีการส่วนตัวใน Objective-C โปรดรวมอาร์กิวเมนต์สำหรับวิธีการของคุณเมื่อโพสต์ ทำไมถึงดี ข้อเสียใดที่มี (ที่คุณรู้) และวิธีจัดการกับพวกเขา สำหรับการค้นพบของฉันจนถึง เป็นไปได้ที่จะใช้หมวดหมู่ [เช่น MyClass (ส่วนตัว)] ที่กำหนดไว้ในไฟล์ MyClass.m เพื่อจัดกลุ่มวิธีส่วนตัว วิธีนี้มี 2 ประเด็น: Xcode (และคอมไพเลอร์?) ไม่ได้ตรวจสอบว่าคุณกำหนดวิธีการทั้งหมดในหมวดหมู่ส่วนตัวในบล็อก @implementation ที่สอดคล้องกัน คุณต้องใส่ @interface ประกาศหมวดหมู่ส่วนตัวของคุณในจุดเริ่มต้นของไฟล์ MyClass.m มิฉะนั้น Xcode บ่นกับข้อความเช่น "ตัวเองอาจไม่ตอบสนองต่อข้อความ" privateFoo " ปัญหาแรกสามารถแก้ไขได้ด้วยหมวดหมู่ที่ว่าง [เช่น MyClass ()] คนที่สองรบกวนฉันมาก ฉันต้องการที่จะเห็นวิธีการส่วนตัวนำไปใช้ (และกำหนด) ใกล้ถึงจุดสิ้นสุดของไฟล์; ฉันไม่ทราบว่าเป็นไปได้

3
“ ส่ง 'const NSString *' ไปยังพารามิเตอร์ของคำเตือน 'NSString *' เพื่อยกเลิกตัวระบุ "
ฉันมีค่าคงที่ NSString ที่ฉันต้องการโทรหา: [newString isEqualToString:CONSTANT_STRING]; มีรหัสผิดที่นี่หรือไม่ ฉันได้รับคำเตือนนี้: ส่ง 'const NSString *' ไปยังพารามิเตอร์ประเภท 'NSString *' เพื่อยกเลิกตัวระบุ จะประกาศสิ่งเหล่านี้ได้อย่างไร?

16
ฉันจะวาดเงาภายใต้ UIView ได้อย่างไร
ฉันพยายามวาดเงาใต้ขอบล่างของ a UIViewใน Cocoa Touch ฉันเข้าใจว่าฉันควรใช้CGContextSetShadow()เพื่อวาดเงา แต่คู่มือการเขียนโปรแกรม Quartz 2D นั้นค่อนข้างคลุมเครือ: บันทึกสถานะกราฟิก เรียกใช้ฟังก์ชันCGContextSetShadowส่งผ่านค่าที่เหมาะสม ดำเนินการวาดภาพทั้งหมดที่คุณต้องการใช้เงา กู้คืนสถานะกราฟิก ฉันได้ลองทำสิ่งต่อไปนี้ในUIViewคลาสย่อย: - (void)drawRect:(CGRect)rect { CGContextRef currentContext = UIGraphicsGetCurrentContext(); CGContextSaveGState(currentContext); CGContextSetShadow(currentContext, CGSizeMake(-15, 20), 5); CGContextRestoreGState(currentContext); [super drawRect: rect]; } .. แต่สิ่งนี้ไม่ได้ผลสำหรับฉันและฉันก็ติดอยู่กับ (ก) จะไปที่ไหนต่อไปและ (ข) หากมีสิ่งใดที่ฉันต้องทำกับฉันUIViewเพื่อทำงานนี้

5
__attribute __ ((constructor)) ทำงานอย่างไร
ดูเหมือนจะค่อนข้างชัดเจนว่าควรตั้งค่าสิ่งต่าง ๆ มันจะทำงานเมื่อใด เหตุใดจึงมีสองวงเล็บ คือ__attribute__ฟังก์ชั่น? แมโครหรือไม่? ไวยากรณ์? ใช้งานได้ใน C หรือไม่ c ++? ฟังก์ชั่นนี้ใช้งานได้กับต้องเป็นแบบคงที่หรือไม่? __attribute__((destructor))ทำงานเมื่อไหร่ ตัวอย่างใน Objective-C : __attribute__((constructor)) static void initialize_navigationBarImages() { navigationBarImages = [[NSMutableDictionary alloc] init]; } __attribute__((destructor)) static void destroy_navigationBarImages() { [navigationBarImages release]; }
348 c++  objective-c  c  gcc 

30
อะไรคือแนวปฏิบัติที่ดีที่สุดที่คุณใช้เมื่อเขียน Objective-C และ Cocoa [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้มีแนวโน้มที่จะเรียกร้องการอภิปรายการโต้แย้งการหยั่งเสียงหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน8 ปีที่ผ่านมา ล็อคแล้ว คำถามและคำตอบนี้ถูกล็อคเนื่องจากคำถามอยู่นอกหัวข้อ แต่มีความสำคัญทางประวัติศาสตร์ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ ฉันรู้เกี่ยวกับHIG (ซึ่งค่อนข้างมีประโยชน์!) แต่คุณใช้วิธีการเขียนโปรแกรมแบบใดเมื่อเขียน Objective-C และเฉพาะเจาะจงมากขึ้นเมื่อใช้ Cocoa (หรือ CocoaTouch)


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