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

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

25
กำลังซูม MKMapView ให้พอดีกับหมุดคำอธิบายประกอบ?
ฉันใช้ MKMapView และเพิ่มหมุดคำอธิบายประกอบลงในแผนที่ประมาณ 5-10 กิโลเมตร เมื่อฉันเรียกใช้แอพพลิเคชั่นแผนที่ของฉันเริ่มซูมออกเพื่อแสดงให้โลกทั้งโลกเห็นว่าวิธีที่ดีที่สุดในการซูมแผนที่คืออะไร แก้ไข: ความคิดเริ่มต้นของฉันคือการใช้ MKCoordinateRegionMake และคำนวณศูนย์ประสานงานลองจิจูดลองจิจูดและละติจูดเดลตาจากคำอธิบายประกอบของฉัน ฉันค่อนข้างมั่นใจว่ามันจะใช้งานได้ แต่ฉันแค่ต้องการตรวจสอบว่าฉันไม่พลาดอะไรที่ชัดเจน เพิ่มรหัส BTW: FGLocation เป็นคลาสที่สอดคล้องกับMKAnnotationlocationFake เป็นNSMutableArrayวัตถุเหล่านี้ ความคิดเห็นยินดีต้อนรับเสมอ .... - (MKCoordinateRegion)regionFromLocations { CLLocationCoordinate2D upper = [[locationFake objectAtIndex:0] coordinate]; CLLocationCoordinate2D lower = [[locationFake objectAtIndex:0] coordinate]; // FIND LIMITS for(FGLocation *eachLocation in locationFake) { if([eachLocation coordinate].latitude > upper.latitude) upper.latitude = [eachLocation coordinate].latitude; …

10
วัตถุประสงค์ -C: BOOL เทียบกับบูล
ฉันเห็น "ประเภทใหม่" BOOL( YES, NO) ฉันอ่านว่าประเภทนี้เกือบจะเหมือนตัวละคร สำหรับการทดสอบฉันทำ: NSLog(@"Size of BOOL %d", sizeof(BOOL)); NSLog(@"Size of bool %d", sizeof(bool)); ดีที่จะเห็นว่าทั้งสองบันทึกแสดง "1" (บางครั้งใน C ++ bool เป็น int และขนาดของมันคือ 4) ดังนั้นฉันแค่สงสัยว่ามีปัญหาบางอย่างเกี่ยวกับประเภทบูลหรืออะไร? ฉันสามารถใช้บูล (ซึ่งดูเหมือนว่าจะทำงาน) โดยไม่สูญเสียความเร็วได้หรือไม่
192 c  objective-c  types  boolean 

10
รอจนกระทั่งมีการเรียกใช้บล็อก async สองบล็อกก่อนเริ่มบล็อกอื่น
เมื่อใช้ GCD เราต้องการรอจนกว่าจะมีการเรียกใช้และบล็อก async สองบล็อกก่อนที่จะดำเนินการขั้นตอนถัดไป วิธีที่ดีที่สุดในการทำเช่นนั้นคืออะไร? เราลองทำสิ่งต่อไปนี้ แต่ดูเหมือนจะไม่ทำงาน: dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^ { // block1 }); dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^ { // block2 }); // wait until both the block1 and block2 are done before start block3 // how to do that? dispatch_sync(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^ { // block3 });

7
ทำไม @autoreleasepool ยังต้องการ ARC อยู่
ส่วนใหญ่ด้วย ARC (การอ้างอิงโดยอัตโนมัติ) เราไม่จำเป็นต้องคิดถึงการจัดการหน่วยความจำเลยด้วย Objective-C ไม่อนุญาตให้สร้างNSAutoreleasePoolอีกต่อไปอย่างไรก็ตามมีไวยากรณ์ใหม่: @autoreleasepool { … } คำถามของฉันคือทำไมฉันจะต้องใช้สิ่งนี้เมื่อฉันไม่ควรปล่อย / ตอบรับอัตโนมัติด้วยตนเอง แก้ไข:เพื่อสรุปสิ่งที่ฉันได้จากคำตอบและความคิดเห็นทั้งหมด: ไวยากรณ์ใหม่: @autoreleasepool { … } เป็นไวยากรณ์ใหม่สำหรับ NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; … [pool drain]; ที่สำคัญกว่า: ใช้ ARC เช่นเดียวกับautoreleaserelease มันต้องการพูลการปล่อยอัตโนมัติในสถานที่ ARC ไม่ได้สร้างกลุ่มการปล่อยอัตโนมัติให้คุณ อย่างไรก็ตาม: เธรดหลักของแอป Cocoa ทุกแอปมีพูลการเลิกอัตโนมัติอยู่แล้ว มีสองโอกาสที่คุณอาจต้องการใช้ประโยชน์จาก@autoreleasepool: myRunLoop(…) { @autoreleasepool { … } return success; }เมื่อคุณอยู่ในหัวข้อรองและไม่มีสระว่ายน้ำเปิดตัวรถยนต์คุณต้องทำด้วยตัวเองเพื่อป้องกันการรั่วไหลเช่น …

18
รับการแจ้งเตือนแบบพุชขณะที่แอพอยู่เบื้องหน้า iOS
ฉันใช้บริการแจ้งเตือนแบบพุชในแอพของฉัน เมื่อแอปอยู่ในพื้นหลังฉันสามารถเห็นการแจ้งเตือนบนหน้าจอการแจ้งเตือน (หน้าจอแสดงเมื่อเราปัดลงจากด้านบนของอุปกรณ์ iOS) แต่ถ้าแอปพลิเคชันอยู่ด้านหน้าวิธีการมอบสิทธิ์ - (void)application:(UIApplication*)application didReceiveRemoteNotification:(NSDictionary*)userInfo กำลังถูกเรียกใช้ แต่การแจ้งเตือนไม่แสดงในหน้าจอการแจ้งเตือน ฉันต้องการแสดงการแจ้งเตือนบนหน้าจอการแจ้งเตือนโดยไม่ขึ้นกับว่าแอปนั้นอยู่ในแบ็คกราวน์หรือโฟร์กราวน์ ฉันเหนื่อยกับการหาทางออก ความช่วยเหลือใด ๆ ที่ชื่นชมอย่างมาก

28
iOS - บิลด์ล้มเหลวด้วย CocoaPods ไม่พบไฟล์ส่วนหัว
ฉันมีโครงการ iOS ที่ใช้ CocoaPods ทุกอย่างทำงานได้อย่างราบรื่นจนกระทั่งผู้พัฒนารายอื่นเริ่มทำงานในโครงการเดียวกัน เขาทำการเปลี่ยนแปลงบางอย่าง (เฉพาะโค้ดเท่าที่ฉันรู้) และสร้างสาขาใหม่ใน repo ฉันตรวจสอบสาขาของเขาและพยายามสร้างมันขึ้นมา แต่ฉันได้รับข้อผิดพลาด: ไม่พบไฟล์ ASLogger / ASLogger.h แม้ว่าฉันจะลบโครงการทั้งหมดและทำสำเนาใหม่และใช้ 'ติดตั้งพ็อด' ความล้มเหลวในการสร้างยังคงมีอยู่ คุณมีความคิดใด ๆ ที่เป็นปัญหาได้หรือไม่ หากคุณต้องการข่าวสารเพิ่มเติมให้ถาม

5
ฉันจะเปลี่ยนสีของชื่อ UIButton ได้อย่างไร
ฉันสร้างปุ่มโดยทางโปรแกรม .......... button = [UIButton buttonWithType:UIButtonTypeRoundedRect]; [button addTarget:self action:@selector(aMethod:) forControlEvents:UIControlEventTouchDown]; [button setTitle:@"Show View" forState:UIControlStateNormal]; button.frame = CGRectMake(80.0, 210.0, 160.0, 40.0); [view addSubview:button]; ฉันจะเปลี่ยนสีของชื่อได้อย่างไร


12
การเปลี่ยนขนาดตัวอักษรของ UILabel แบบไดนามิก
ฉันมีUILabel: factLabel = [[UILabel alloc] initWithFrame:CGRectMake(20, 100, 280, 100)]; factLabel.text = @"some text some text some text some text"; factLabel.backgroundColor = [UIColor clearColor]; factLabel.lineBreakMode = UILineBreakModeWordWrap; factLabel.numberOfLines = 10; [self.view addSubview:factLabel]; ตลอดชีวิตของแอปพลิเคชั่น iOS ของฉันfactLabelจะได้รับคุณค่าที่แตกต่างกันมากมาย บางประโยคมีหลายประโยคและบางประโยคมีเพียง 5 หรือ 6 คำ ฉันจะตั้งค่าUILabelขนาดตัวอักษรให้เปลี่ยนแปลงได้อย่างไรเพื่อให้ข้อความมีขนาดพอดีกับขอบเขตที่ฉันกำหนดไว้เสมอ

3
รายละเอียดของ“ Objective-C Literals” ระบุไว้ในบันทึกย่อประจำรุ่น Xcode 4.4 อย่างไร
ฉันกำลังอ่านบันทึกประจำรุ่นสำหรับ Xcode 4.4 และสังเกตสิ่งนี้: LLVM 4.0 คอมไพเลอร์ Xcode มี Apple LLVM Compiler เวอร์ชั่น 4.0 รวมถึงฟีเจอร์ภาษา newObjective-C ต่อไปนี้: [... ] - Objective-C literals: สร้างตัวอักษรสำหรับ NSArray, NSDictionary และ NSNumber เหมือนกับตัวอักษรของ NSString ฉันสนใจคุณลักษณะนี้มาก มันไม่ได้อย่างสิ้นเชิงชัดเจนกับผมเพียงวิธีการที่ตัวอักษรสำหรับNSStringการทำงานและวิธีการหนึ่งที่สามารถใช้พวกเขาในNSArray, และNSDictionaryNSNumber มีรายละเอียดอะไรบ้าง?

4
การแปลงโดยนัยของ Objective-C สูญเสียความแม่นยำจำนวนเต็ม 'NSUInteger' (หรือที่รู้จักว่า 'ไม่ได้ลงนามยาว') เป็นคำเตือน 'int'
ฉันทำงานผ่านแบบฝึกหัดและได้รับคำเตือนว่า: การแปลงโดยนัยสูญเสียความแม่นยำของจำนวนเต็ม: 'NSUInteger' (aka 'long unsigned long') ถึง 'int' #import <Foundation/Foundation.h> int main (int argc, const char * argv[]) { @autoreleasepool { NSArray *myColors; int i; int count; myColors = @[@"Red", @"Green", @"Blue", @"Yellow"]; count = myColors.count; // <<< issue warning here for (i = 0; i < count; i++) …


12
วิธีที่ดีที่สุดในการสลับ NSMutableArray คืออะไร
หากคุณมีคุณNSMutableArrayจะสุ่มสับเปลี่ยนองค์ประกอบได้อย่างไร (ฉันมีคำตอบของฉันเองสำหรับเรื่องนี้ซึ่งโพสต์ด้านล่าง แต่ฉันใหม่กับ Cocoa และฉันสนใจที่จะรู้ว่ามีวิธีที่ดีกว่านี้หรือไม่) อัปเดต: ตามที่ระบุไว้โดย @Mukesh ตั้งแต่ iOS 10+ และ macOS 10.12+ มี-[NSMutableArray shuffledArray]วิธีการที่สามารถใช้เพื่อสลับ ดูhttps://developer.apple.com/documentation/foundation/nsarray/1640855-shuffledarray?language=objcสำหรับรายละเอียด (แต่โปรดทราบว่าสิ่งนี้จะสร้างอาร์เรย์ใหม่แทนที่การสับเปลี่ยนองค์ประกอบในที่)

14
UITableViewCell แสดงพื้นหลังสีขาวและไม่สามารถแก้ไขได้ใน iOS7
UITableViewCellฉันได้ดำเนินการระดับตารางที่กำหนดเองมุมมองมือถือที่สืบทอดมาจาก Tableview มีภาพพื้นหลังดังนั้นฉันต้องการให้พื้นหลังของเซลล์โปร่งใส มันดูดีก่อน iOS7 อย่างไรก็ตามใน iOS7 เซลล์จะแสดงเป็นพื้นหลังสีขาวเสมอ แม้แต่ Xcode7, 2015 ก็มีข้อผิดพลาดในกระดานเรื่องราว : คุณต้องตั้งค่าสีพื้นหลังของเซลล์ในรหัส

4
คำสั่งเอกสารใหม่มีอะไรบ้างใน Xcode 5 [ปิด]
ปิด. คำถามนี้ไม่เป็นไปตามหลักเกณฑ์กองมากเกิน ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Stack Overflow ปิดให้บริการใน2 ปีที่ผ่านมา ปรับปรุงคำถามนี้ หนึ่งในฟีเจอร์ใหม่ของXcode 5คือความสามารถในการจัดทำเอกสารโค้ดของคุณเองด้วยไวยากรณ์ความคิดเห็นพิเศษ รูปแบบคล้ายกับ doxygen แต่ดูเหมือนจะรองรับชุดย่อยของคุณลักษณะเหล่านั้นเท่านั้น สนับสนุนคำสั่งใดและคำสั่งใดไม่ ประเพณีของพวกเขาแตกต่างจาก Doxygen หรือไม่?

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