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

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

4
เปรียบเทียบสอง CGRects
ฉันจำเป็นต้องตรวจสอบว่าเฟรมของมุมมองของฉันเท่ากับ CGRect ที่กำหนด ฉันลองทำแบบนี้: CGRect rect = CGRectMake(20, 20, 20, 20); if (self.view.frame == rect) { // do some stuff } Invalid operands to binary expression('CGRect' (aka 'struct CGRect') and 'CGRect')แต่ผมมีข้อผิดพลาดว่า ทำไมฉันไม่สามารถเปรียบเทียบสองตัวCGRectได้?

2
ARC รองรับคิวการจัดส่งหรือไม่
ฉันกำลังอ่านเอกสารของ Apple เกี่ยวกับ "Memory Management for Dispatch Queues": แม้ว่าคุณจะใช้แอปพลิเคชันที่เก็บรวบรวมขยะคุณยังต้องรักษาและปล่อยคิวการจัดส่งและวัตถุจัดส่งอื่น Grand Central Dispatch ไม่รองรับโมเดลการรวบรวมขยะสำหรับการเรียกคืนหน่วยความจำ ฉันรู้ว่า ARC ไม่ใช่คนเก็บขยะ แต่ฉันอยากแน่ใจว่าฉันไม่จำเป็นต้อง dispatch_retain และ dispatch_release dispatch_queue_t ของฉัน

7
ViewController responseToSelector: ข้อความที่ส่งไปยังอินสแตนซ์ที่ถูกจัดสรร (CRASH)
ตกลงนี่คือข้อตกลงฉันเกลียดการตั้งคำถามเกี่ยวกับการแก้ไขข้อบกพร่องและข้อขัดข้องของฉัน เพราะปกติฉันจะจัดการพวกเขาด้วยตัวเอง แต่ฉันก็ไม่สามารถหลีกเลี่ยงปัญหานี้ได้แม้ว่าจะดูคำถามหลายข้อแล้วก็ตาม ตกลงนี่คือปัญหาฉันพบว่าแอปของฉันสุ่มเปิดและปิดการหยุดทำงานด้วยการติดตามสแต็กนี้: *** -[ViewController respondsToSelector:]: message sent to deallocated instance 0x1e5d2ef0 ViewControllerอาจแตกต่างกันไปที่ไหนบางครั้งสถานที่ที่รหัสของฉันขัดข้องไม่มีความเกี่ยวข้องกับรายการนั้นViewControllerและไม่ได้เป็นเจ้าของหรือเรียกมันว่า นอกจากนี้เพื่อรับการติดตามคอนโซลนั้นฉันได้เปิดใช้งาน Zombies มิฉะนั้นฉันจะไม่ได้รับการพิมพ์คอนโซลเลยฉันจะได้รับ: objc_msgSendซึ่งฉันรู้ว่าฉันกำลังส่งข้อความบางอย่างที่เผยแพร่ แต่ฉันไม่พบว่ามันอยู่ที่ไหน ... ฉันติดอยู่จริงๆ! โดยปกติฉันมักจะแก้ไขข้อขัดข้องของฉันดังนั้นฉันจึงติดอยู่กับเรื่องนี้จริงๆ อีกครั้งสิ่งนี้ขัดข้องในสถานที่ต่างๆในเวลาที่ต่างกันทั้งในและนอก และสถานที่ที่เกิดปัญหาแทบไม่มีความเกี่ยวข้องกับไฟล์ViewController. และฉันพบว่าสิ่งนี้สับสนมาก คุณต้องการรหัสของฉันหรือไม่? ฉันมีไฟล์จำนวนมากและเนื่องจากมันขัดข้องในที่ต่างๆการแจกจ่ายโค้ดของฉันจะเป็นเรื่องยุ่ง! ฉันได้พยายามเพิ่มจุดพักเชิงสัญลักษณ์โดยไม่มีโชคและ Zombies ไม่มีในแอปพลิเคชัน Instruments สำหรับ iOS ฉันไม่สามารถเรียกใช้แอปของฉันบนเครื่องจำลองได้เนื่องจากมีกรอบสถาปัตยกรรมที่ไม่รองรับ ขอบคุณทุกคน ...
95 objective-c  ios  xcode  crash 

7
กลุ่ม NSAutoreleasePool autorelease ทำงานอย่างไร
ที่ผมเข้าใจสิ่งที่สร้างขึ้นกับalloc , ใหม่หรือสำเนาความต้องการที่จะได้รับการปล่อยตัวด้วยตนเอง ตัวอย่างเช่น: int main(void) { NSString *string; string = [[NSString alloc] init]; /* use the string */ [string release]; } คำถามของฉันมันจะไม่ถูกต้องเท่านี้หรือ: int main(void) { NSAutoreleasePool *pool; pool = [[NSAutoreleasePool alloc] init]; NSString *string; string = [[[NSString alloc] init] autorelease]; /* use the string */ [pool drain]; }

7
ตัวอย่างตัวควบคุมมุมมองคอนเทนเนอร์ [ปิด]
ปิด. คำถามนี้ไม่เป็นไปตามหลักเกณฑ์กองมากเกิน ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Stack Overflow ปิดให้บริการใน4 ปีที่แล้ว ปรับปรุงคำถามนี้ ใครช่วยชี้ตัวอย่างดีๆในการสร้าง Custom View Controller เป็น Container View Controller ได้บ้าง เอกสารเดียวที่ฉันสามารถพบคือคู่ของย่อหน้าที่UIViewController ชั้นอ้างอิง ฉันรู้สึกว่าฉันต้องการข้อมูลมากกว่านั้นเล็กน้อยและตัวอย่างการนำไปใช้ก็จะดี Google ไม่ได้ทำอะไรเลย ฉันสนใจวิธีนี้เป็นพิเศษ: transitionFromViewController:toViewController:duration:options:animations:completion:

15
เมื่อใดควรใช้ UICollectionView แทน UITableView
ฉันพบว่าUICollectionViewเป็นเหมือนรุ่นอัพเกรดของUITableViewการแนะนำใน iOS6 แต่เมื่อฉันควรเลือกUICollectionViewแทนUITableView? ยังมีแอพที่ใช้อยู่UITableViewถ้าUICollectionViewจะทำอะไรUITableViewก็ทำได้ทำไมคนยังใช้UITableView? มีความแตกต่างเท่าที่เกี่ยวข้องกับประสิทธิภาพหรือไม่? ขอบคุณ!

9
เอกสาร Main.storyboard ต้องการ Xcode 8.0 หรือใหม่กว่า
ฉันดาวน์โหลด Xcode beta และเปิดโครงการที่มีอยู่เพื่อดูว่ามันทำงานอย่างไรกับ Xcode 8 beta (ฉันเปิดไฟล์ Storyboard จาก Xcode 8) ตอนนี้เมื่อฉันเปิดโปรเจ็กต์จาก Xcode 7.3 ฉันไม่สามารถเปิดไฟล์สตอรี่บอร์ดได้มันทำให้ฉันมีข้อผิดพลาดตามมา เวอร์ชันนี้ไม่รองรับเอกสารที่บันทึกในรูปแบบ Xcode 8 เปิดเอกสารนี้ด้วย Xcode 8.0 หรือใหม่กว่า ฉันควรทำอย่างไรเพื่อเปลี่ยนกลับเนื่องจากฉันต้องการทำงานกับ Xcode 7 ต่อไป ใน Xcode 8 ฉันได้รับแจ้งให้เลือกอุปกรณ์และฉันเลือก iPhone 6S ฉันคิดว่าส่วนนั้นต้องรับผิดชอบต่อไฟล์สตอรี่บอร์ดที่ไม่เปิดใน Xcode 7

8
ปฏิสัมพันธ์เหนือขอบเขตของ UIView
เป็นไปได้ไหมที่ UIButton (หรือส่วนควบคุมอื่น ๆ สำหรับเรื่องนั้น) จะรับเหตุการณ์การสัมผัสเมื่อเฟรมของ UIButton อยู่นอกเฟรมของผู้ปกครอง ทำให้เมื่อฉันลองสิ่งนี้ UIButton ของฉันดูเหมือนจะไม่สามารถรับเหตุการณ์ใด ๆ ได้ ฉันจะแก้ไขปัญหานี้ได้อย่างไร

7
ความกว้างของเซลล์แบบไดนามิกของ UICollectionView ขึ้นอยู่กับความกว้างของฉลาก
ฉันมี UICollectionView ที่โหลดเซลล์จากเซลล์ที่ใช้ซ้ำได้ซึ่งมีป้ายกำกับ อาร์เรย์จัดเตรียมเนื้อหาสำหรับป้ายกำกับนั้น ฉันสามารถปรับขนาดความกว้างของฉลากขึ้นอยู่กับความกว้างของเนื้อหาได้อย่างง่ายดายด้วย sizeToFit แต่ฉันไม่สามารถสร้างเซลล์ให้พอดีกับฉลากได้ นี่คือรหัส - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. arrayOfStats = @[@"time:",@"2",@"items:",@"10",@"difficulty:",@"hard",@"category:",@"main"]; } - (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection: (NSInteger)section{ return [arrayOfStats count]; } - (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath{ return CGSizeMake(??????????); } - (NSInteger)numberOfSectionsInCollectionView:(UICollectionView …

7
Objective-C แยกวิเคราะห์สตริงฐานสิบหกเป็นจำนวนเต็ม
ฉันต้องการทราบวิธีแยกวิเคราะห์สตริงฐานสิบหกซึ่งเป็นตัวแทนของตัวเลขใน Objective-C ฉันยินดีที่จะใช้ทั้งวัตถุประสงค์หรือวิธีการตาม C ก็ใช้ได้ ตัวอย่าง: #01FFFFAB ควรแยกวิเคราะห์เป็นจำนวนเต็ม: 33554347 ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชม!

5
แอตทริบิวต์ setter คุณสมบัติที่อ่อนแอและแข็งแกร่งใน Objective-C
อะไรคือความแตกต่างระหว่างแอตทริบิวต์ setter คุณสมบัติที่อ่อนแอและแข็งแกร่งใน Objective-C? @property(retain, [weak/strong]) __attribute__((NSObject)) CFDictionaryRef myDictionary; ผลกระทบและประโยชน์คืออะไร? ฉันได้ยินมาว่าจุดอ่อนไม่สามารถใช้ได้ใน iOS 4 และเราจำเป็นต้องใช้การกำหนด อ่อนแอคล้ายกับการมอบหมายหรือไม่?

6
การใช้ NSPredicate เพื่อกรอง NSArray ตามคีย์ NSDictionary
ฉันมีพจนานุกรมมากมาย ฉันต้องการกรองอาร์เรย์ตามคีย์ ฉันลองสิ่งนี้: NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(SPORT == %@)", @"Football"]; NSArray *filteredArray = [data filteredArrayUsingPredicate:predicate]; ไม่ได้ผลฉันไม่ได้รับผลลัพธ์ ฉันคิดว่าฉันทำอะไรผิด ฉันรู้ว่านี่เป็นวิธีการถ้า "SPORT" เป็นไอวาร์ ฉันคิดว่ามันอาจจะแตกต่างกันถ้าเป็นกุญแจ อย่างไรก็ตามฉันไม่สามารถหาตัวอย่างได้ ขอบคุณ อัปเดต ฉันเพิ่มเครื่องหมายคำพูดรอบ ๆ สตริงที่ฉันกำลังค้นหา NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(SPORT == '%@')", @"Football"]; มันยังไม่ทำงาน อัปเดต 2 แก้ไขได้ จริงๆแล้วฉันต้องลบเครื่องหมายคำพูดเดียวซึ่งดูเหมือนจะขัดกับสิ่งที่ไกด์พูด ปัญหาที่แท้จริงของฉันคือฉันมีอาร์เรย์ที่ซ้อนกันและฉันไม่ได้ประเมินพจนานุกรมจริงๆ หัวกระดูกเคลื่อน


18
“ wait_fences: ไม่ได้รับคำตอบ: 10004003”?
ฉันได้รับข้อผิดพลาดที่เป็นความลับนี้ในครั้งแรก (และเป็นครั้งแรกเท่านั้น) มุมมองของฉันถูกโหลดเนื่องจากโค้ดบรรทัดต่อไปนี้: - (void)viewWillAppear:(BOOL)animated { [textField becomeFirstResponder]; } มีความล่าช้าอย่างเห็นได้ชัด (~ 3 - 4 วินาทีแม้ในเครื่องจำลอง) เนื่องจากสิ่งนี้ทำให้แอปของฉันไม่ตอบสนอง ไม่มีใครรู้วิธีการที่จะแก้ไขปัญหานี้? ฉันไม่พบเอกสารใด ๆ บนเว็บไซต์ของ Apple หรือวิธีแก้ปัญหาใด ๆ ที่นี่หรือใน Google น่าแปลกที่สถานการณ์ตรงข้ามจะเกิดขึ้นถ้าฉันใส่เส้นเข้าไป-viewDidAppear:แทนที่จะเป็น-viewWillAppear:; นั่นคือแทนที่จะพิมพ์ข้อผิดพลาดในครั้งแรกที่แสดงแป้นพิมพ์และไม่พิมพ์อีกครั้งข้อผิดพลาดจะไม่ถูกพิมพ์ในครั้งแรก แต่ทุกครั้งหลังจากนั้น นี่ทำให้ฉันปวดหัวมาก

17
มีเอกสารวิธีตั้งค่าการวางแนว iPhone หรือไม่?
ฉันมีแอพที่ฉันต้องการรองรับการหมุนอุปกรณ์ในบางมุมมอง แต่แอพอื่นไม่สมเหตุสมผลในโหมดแนวนอนดังนั้นเมื่อฉันเปลี่ยนมุมมองออกไปฉันต้องการบังคับให้ตั้งค่าการหมุนเป็นแนวตั้ง มีตัวตั้งค่าคุณสมบัติที่ไม่มีเอกสารบน UIDevice ซึ่งทำเคล็ดลับ แต่สร้างคำเตือนคอมไพเลอร์อย่างชัดเจนและอาจหายไปพร้อมกับการแก้ไข SDK ในอนาคต [[UIDevice currentDevice] setOrientation:UIInterfaceOrientationPortrait]; มีเอกสารวิธีบังคับทิศทางหรือไม่? อัปเดต:ฉันคิดว่าฉันจะให้ตัวอย่างเนื่องจากฉันไม่ได้มองหา shouldAutorotateToInterfaceOrientation เนื่องจากฉันได้ดำเนินการไปแล้ว ฉันต้องการให้แอปของฉันรองรับแนวนอนและแนวตั้งในมุมมอง 1 แต่เฉพาะแนวตั้งในมุมมอง 2 ฉันได้ติดตั้ง shouldAutorotateToInterfaceOrientation สำหรับมุมมองทั้งหมดแล้ว แต่ถ้าผู้ใช้อยู่ในโหมดแนวนอนในมุมมอง 1 จากนั้นเปลี่ยนเป็นมุมมอง 2 ฉันต้องการบังคับ โทรศัพท์เพื่อหมุนกลับไปที่แนวตั้ง

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