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

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

14
Objective-C: จะลบผู้สังเกตการณ์สำหรับ NSNotification ได้ที่ไหน
ฉันมีคลาส C วัตถุประสงค์ ในนั้นฉันสร้างเมธอด init และตั้งค่า NSNotification ในนั้น //Set up NSNotification [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(getData) name:@"Answer Submitted" object:nil]; ฉันจะตั้งค่าที่ไหน[[NSNotificationCenter defaultCenter] removeObserver:self]ในชั้นเรียนนี้ ฉันรู้ว่าสำหรับ a UIViewControllerฉันสามารถเพิ่มเข้าไปในviewDidUnloadวิธีการได้ดังนั้นฉันต้องทำอะไรถ้าฉันเพิ่งสร้างคลาส c วัตถุประสงค์?

10
“ f” หลังตัวเลข
อะไรfหลังจากตัวเลขที่บ่งบอก? นี่มาจาก C หรือ Objective-C? มีความแตกต่างในการไม่เพิ่มสิ่งนี้เป็นจำนวนคงที่หรือไม่? CGRect frame = CGRectMake(0.0f, 0.0f, 320.0f, 50.0f); คุณอธิบายได้ไหมว่าทำไมฉันถึงไม่เขียน: CGRect frame = CGRectMake(0, 0, 320, 50);

2
ส่งตัวอย่างของคลาสไปยัง @protocol ใน Objective-C
ฉันมีวัตถุ (UIViewController) ซึ่งอาจเป็นไปตามหรือไม่เป็นไปตามโปรโตคอลที่ฉันกำหนดไว้ ฉันรู้ว่าฉันสามารถตรวจสอบได้ว่าวัตถุนั้นสอดคล้องกับโปรโตคอลหรือไม่จากนั้นเรียกใช้เมธอดอย่างปลอดภัย: if([self.myViewController conformsToProtocol:@protocol(MyProtocol)]) { [self.myViewController protocolMethod]; // <-- warning here } อย่างไรก็ตาม XCode แสดงคำเตือน: warning 'UIViewController' may not respond to '-protocolMethod' อะไรคือวิธีที่ถูกต้องในการป้องกันคำเตือนนี้ ฉันไม่สามารถแคสต์self.myViewControllerเป็นMyProtocolชั้นเรียนได้

6
รหัส Object-c สามารถเรียกส่วนขยายที่รวดเร็วในคลาสได้หรือไม่
ฉันค้นหาบางโพสต์ฉันคิดว่าฉันไม่สามารถเขียนส่วนขยายได้อย่างรวดเร็วและเรียกมันจากรหัส Objective-C ใช่ไหม? @objc เช่นแอตทริบิวต์รองรับเฉพาะเมธอดคลาสโปรโตคอล?

6
ใช้เมธอด didSelectRowAtIndexPath หรือเตรียมForSegueสำหรับ UITableView?
ฉันใช้สตอรี่บอร์ดและมี UITableView ฉันมีการตั้งค่าต่อที่ดึงจากตารางของฉันไปยัง VC รายละเอียด แต่ฉันควรใช้วิธีใดในการจัดการนี้ ฉันจะต้องส่งวัตถุสองสามชิ้นไปยังมุมมองรายละเอียด แต่ฉันใช้didSelectRowAtIndexหรือ-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender?

9
เรียกข้อมูลการใช้หน่วยความจำบน iPhone โดยใช้โปรแกรม
ฉันกำลังพยายามดึงข้อมูลจำนวนหน่วยความจำที่แอพ iPhone ของฉันใช้อยู่ตลอดเวลาโดยใช้โปรแกรม ใช่ฉันทราบเกี่ยวกับ ObjectAlloc / Leaks ฉันไม่สนใจสิ่งเหล่านี้เพียง แต่รู้ว่าเป็นไปได้ไหมที่จะเขียนโค้ดและรับจำนวนไบต์ที่ใช้และรายงานผ่าน NSLog ขอบคุณ.

6
คุณสมบัติที่ประกาศต้องการตัวแปรอินสแตนซ์ที่เกี่ยวข้องหรือไม่
คุณสมบัติใน Objective-C 2.0 จำเป็นต้องมีการประกาศตัวแปรอินสแตนซ์ที่เกี่ยวข้องหรือไม่ ตัวอย่างเช่นฉันเคยทำสิ่งนี้: MyObject.h @interface MyObject : NSObject { NSString *name; } @property (nonatomic, retain) NSString *name; @end MyObject.m @implementation @synthesize name; @end อย่างไรก็ตามถ้าฉันทำสิ่งนี้แทน: MyObject.h @interface MyObject : NSObject { } @property (nonatomic, retain) NSString *name; @end ตอนนี้ยังใช้ได้ไหม และมันแตกต่างจากตัวอย่างก่อนหน้านี้หรือไม่?

7
ทางเลือกในการ dispatch_get_current_queue () สำหรับการบล็อกให้เสร็จสมบูรณ์ใน iOS 6?
ฉันมีวิธีการที่ยอมรับบล็อกและบล็อกเสร็จสิ้น บล็อกแรกควรทำงานในพื้นหลังในขณะที่บล็อกการเสร็จสมบูรณ์ควรทำงานในคิวใดก็ตามที่เมธอดเรียก ในช่วงหลังฉันใช้มาตลอดdispatch_get_current_queue()แต่ดูเหมือนว่าจะเลิกใช้งานใน iOS 6 ขึ้นไป ฉันควรใช้อะไรแทน?


5
presentModalViewController: Animated เลิกใช้แล้วใน ios6
ฉันใช้รหัสต่อไปนี้สำหรับเครื่องมือเลือกรูปภาพ แต่เมื่อฉันเรียกใช้ในโปรแกรมจำลองฉันมีหน่วยความจำรั่วและได้รับคำเตือนเกี่ยวกับpresentModalViewcontroller:animatedการเลิกใช้งานใน iOS6 ฉันยังdismissModalViewController:animatedเลิกใช้งาน ฉันใช้ SDK 6.1 รหัสสำหรับ ImagePicker: - (void)showAlbum:(id)sender { imagePicker=[[UIImagePickerController alloc]init]; imagePicker.delegate = self; imagePicker.allowsEditing =NO; imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; [self presentModalViewController:imagePicker animated:YES]; } - (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker{ //release picker [picker dismissModalViewControllerAnimated:YES]; }

8
“ แอปพลิเคชันพยายามที่จะนำเสนอตัวควบคุมที่ใช้งานอยู่แบบโมดูลาร์”?
ฉันเพิ่งพบข้อขัดข้องที่แสดงNSInvalidArgumentExceptionข้อความนี้ในแอปซึ่งไม่เคยทำมาก่อน แอปพลิเคชันพยายามนำเสนอคอนโทรลเลอร์ UITabBarController แบบโมดูลาร์: 0x83d7f00 ฉันมีสิ่งUITabBarControllerที่ฉันสร้างในAppDelegateและให้อาร์เรย์ของUIViewControllers. หนึ่งในนั้นที่ฉันต้องการนำเสนอแบบสุภาพเมื่อแตะที่มัน ฉันทำได้โดยใช้วิธีการมอบหมาย - (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController หากตัวควบคุมมุมมองนั้นอยู่ในคลาสของตัวควบคุมที่ฉันต้องการนำเสนอแบบโมฆะฉันจะส่งคืน NO และทำ [tabBarController presentModalViewController:viewController animated:YES]; และตอนนี้ฉันได้รับข้อผิดพลาดนั้นซึ่งดูเหมือนว่าหมายความว่าคุณไม่สามารถนำเสนอตัวควบคุมมุมมองแบบโมเดิร์นที่ใช้งานอยู่ที่อื่นได้ (ในแถบแท็บ ... ) ฉันควรบอกว่าฉันใช้ XCode 4.2 Developer Preview 7 ดังนั้น นี่คือ iOS 5 (ฉันรู้เกี่ยวกับ NDA แต่ฉันคิดว่าฉันไม่ได้ให้รายละเอียดต้องห้ามใด ๆ ) ขณะนี้ฉันไม่มีการติดตั้ง XCode เพื่อทดสอบว่าสิ่งนี้ขัดข้องที่คอมไพล์กับ iOS4 SDK หรือไม่ แต่ฉันเกือบทั้งหมดไม่แน่ใจ ฉันแค่อยากถามว่าใครเคยประสบปัญหานี้หรือมีข้อเสนอแนะใด ๆ
101 objective-c  ios  ios5 

17
UICollectionView กำหนดจำนวนคอลัมน์
ฉันเพิ่งเริ่มเรียนรู้เกี่ยวกับ UICollectionViews ฉันสงสัยว่าจะมีใครรู้วิธีระบุจำนวนคอลัมน์ใน collectionview ค่าเริ่มต้นตั้งไว้ที่ 3 (iPhone / แนวตั้ง) ฉันดูเอกสารแล้วดูเหมือนจะหาคำตอบที่กระชับไม่ได้

8
CALayers ไม่ได้รับการปรับขนาดตามการเปลี่ยนแปลงขอบเขตของ UIView ทำไม?
ฉันมีชั้นย่อยที่เพิ่มเข้ามาในเลเยอร์UIViewประมาณ 8 CALayerชั้น ถ้าผมปรับเปลี่ยนมุมมองขอบเขตของ (animated) แล้วมุมมองของตัวเองหดตัว (ฉันจะตรวจสอบด้วยbackgroundColor) แต่ขนาด sublayers' ยังคงไม่เปลี่ยนแปลง วิธีแก้ปัญหานี้?

13
การเปลี่ยนสี UIImage
ฉันกำลังพยายามเปลี่ยนสีของ UIImage รหัสของฉัน: -(UIImage *)coloredImage:(UIImage *)firstImage withColor:(UIColor *)color { UIGraphicsBeginImageContext(firstImage.size); CGContextRef context = UIGraphicsGetCurrentContext(); [color setFill]; CGContextTranslateCTM(context, 0, firstImage.size.height); CGContextScaleCTM(context, 1.0, -1.0); CGContextSetBlendMode(context, kCGBlendModeCopy); CGRect rect = CGRectMake(0, 0, firstImage.size.width, firstImage.size.height); CGContextDrawImage(context, rect, firstImage.CGImage); CGContextClipToMask(context, rect, firstImage.CGImage); CGContextAddRect(context, rect); CGContextDrawPath(context,kCGPathElementMoveToPoint); UIImage *coloredImg = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return coloredImg; } รหัสนี้ใช้งานได้ แต่ภาพที่ได้มานั้นไม่ดีเท่า …

22
libxml / tree.h ไม่มีไฟล์หรือไดเร็กทอรีดังกล่าว
ฉันได้รับข้อผิดพลาดต่อไปนี้ libxml / tree.h ไม่มีไฟล์หรือไดเร็กทอรีดังกล่าว ฉันได้เพิ่มlibxml2.dylibในโครงการของฉันแล้ว แต่ฉันได้รับปัญหาประเภทนี้ โปรดช่วยฉันด้วย

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