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

8
ฉันจะสร้างหมวดหมู่ใน Xcode 6 ขึ้นไปได้อย่างไร
ฉันต้องการสร้างหมวดหมู่UIColorในแอพของฉันโดยใช้ Xcode 6 แต่สิ่งที่เป็นใน Xcode 6 ไม่มีเทมเพลตไฟล์หมวดหมู่ Objective-C มีตัวเลือกในการสร้างหมวดหมู่ใน Xcode 6 หรือไม่?

12
วิธีกำจัดคำเตือน 'ตัวเลือกที่ไม่ได้ประกาศ'
ฉันต้องการใช้ตัวเลือกบนอินสแตนซ์ของ NSObject โดยไม่จำเป็นต้องใช้โปรโตคอลที่นำมาใช้ ตัวอย่างเช่นมีวิธีหมวดหมู่ที่ควรตั้งค่าคุณสมบัติข้อผิดพลาดหากอินสแตนซ์ NSObject ที่เรียกใช้สนับสนุน นี่คือรหัสและรหัสทำงานตามที่ตั้งใจไว้: if ([self respondsToSelector:@selector(setError:)]) { [self performSelector:@selector(setError:) withObject:[NSError errorWithDomain:@"SomeDomain" code:1 userInfo:nil]]; } อย่างไรก็ตามคอมไพเลอร์ไม่เห็นวิธีการใด ๆ รอบ ๆ ด้วย setError: ลายเซ็นดังนั้นมันทำให้ฉันเตือนสำหรับแต่ละบรรทัดที่มี@selector(setError:)ตัวอย่าง: Undeclared selector 'setError:' ฉันไม่ต้องการประกาศโปรโตคอลเพื่อกำจัดคำเตือนนี้เพราะฉันไม่ต้องการให้ทุกคลาสที่สามารถใช้สิ่งนี้เพื่อใช้สิ่งพิเศษ เพียงแค่การประชุมฉันต้องการให้พวกเขามีsetError:วิธีการหรือทรัพย์สิน เป็นไปได้หรือไม่ อย่างไร? ไชโย สอี

6
หมวดหมู่ Objective-C ในห้องสมุดคงที่
คุณช่วยแนะนำวิธีการเชื่อมโยงไลบรารีคงที่กับโครงการ iPhone ให้ถูกต้องได้ไหม ฉันใช้โครงการห้องสมุดแบบสแตติกที่เพิ่มเข้ากับโครงการแอปเป็นการพึ่งพาโดยตรง (เป้าหมาย -> ทั่วไป -> การพึ่งพาโดยตรง) และใช้งานได้ดีทั้งหมดยกเว้นหมวดหมู่ หมวดหมู่ที่กำหนดในไลบรารีแบบคงที่ไม่ทำงานในแอป ดังนั้นคำถามของฉันคือวิธีเพิ่มไลบรารีแบบคงที่ที่มีบางหมวดหมู่ในโครงการอื่น และโดยทั่วไปวิธีปฏิบัติที่ดีที่สุดที่จะใช้ในรหัสโครงการแอปจากโครงการอื่นคืออะไร

6
Objective-C: คุณสมบัติ / ตัวแปรอินสแตนซ์ในหมวดหมู่
เนื่องจากฉันไม่สามารถสร้างคุณสมบัติที่สังเคราะห์ในประเภทใน Objective-C ได้ฉันจึงไม่รู้วิธีเพิ่มประสิทธิภาพโค้ดต่อไปนี้: @interface MyClass (Variant) @property (nonatomic, strong) NSString *test; @end @implementation MyClass (Variant) @dynamic test; - (NSString *)test { NSString *res; //do a lot of stuff return res; } @end วิธีการทดสอบเรียกว่าหลายครั้งบนรันไทม์และฉันกำลังทำหลายอย่างเพื่อคำนวณผลลัพธ์ โดยปกติการใช้คุณสมบัติสังเคราะห์ฉันจะเก็บค่าไว้ใน IVar _test ในครั้งแรกที่เรียกเมธอดและเพิ่งส่งคืน IVar นี้ในครั้งต่อไป ฉันจะปรับโค้ดด้านบนให้เหมาะสมได้อย่างไร

1
หมวดหมู่สามารถใช้โปรโตคอลใน Objective C ได้หรือไม่?
ฉันมีหมวดหมู่ใน NSDate และจะสะดวกหากสามารถใช้โปรโตคอลที่ฉันสร้างไว้ก่อนหน้านี้ได้ เป็นไปได้หรือไม่ ไวยากรณ์ที่ถูกต้องสำหรับสิ่งนี้คืออะไร?

4
วิธีการลบล้างโดยใช้หมวดหมู่ใน Objective-C
ฉันสามารถใช้หมวดหมู่คลาสเพื่อแทนที่เมธอดที่ใช้อยู่แล้วโดยใช้หมวดหมู่ได้หรือไม่ แบบนี้: 1) วิธีการเดิม -(BOOL) method { return true; } 2) วิธีการแทนที่ -(BOOL) method { NSLog(@"error?"); return true; } จะได้ผลหรือผิดกฎหมาย?
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.