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

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

7
วิธีเก็บวัตถุที่กำหนดเองใน NSUserDefaults
เอาล่ะฉันได้ทำอะไรบ้างแล้วฉันก็ตระหนักถึงปัญหาของฉัน แต่ฉันไม่รู้วิธีแก้ไข ฉันสร้างคลาสที่กำหนดเองเพื่อเก็บข้อมูลบางอย่าง ฉันทำวัตถุสำหรับชั้นนี้และฉันต้องการให้พวกเขาสุดท้ายระหว่างช่วง ก่อนที่ฉันจะใส่ข้อมูลทั้งหมดของฉันเข้าไปNSUserDefaultsแต่สิ่งนี้ไม่ทำงาน -[NSUserDefaults setObject:forKey:]: Attempt to insert non-property value '<Player: 0x3b0cc90>' of class 'Player'. นั่นคือข้อผิดพลาดที่ฉันได้รับเมื่อฉันใส่ชั้นเรียนของฉันที่กำหนดเอง "ผู้เล่น" NSUserDefaultsใน ตอนนี้ฉันได้อ่านที่เห็นได้ชัดว่าNSUserDefaultsเก็บข้อมูลบางประเภทเท่านั้น แล้วฉันจะนำวัตถุของฉันเข้าไปได้NSUSerDefaultsอย่างไร ฉันอ่านว่าควรมีวิธีการ "เข้ารหัส" วัตถุที่กำหนดเองของฉันแล้ววางไว้ แต่ฉันไม่แน่ใจว่าจะใช้งานได้อย่างไรความช่วยเหลือจะได้รับการชื่นชม! ขอบคุณ! **** **** แก้ไข เอาล่ะฉันทำงานกับรหัสที่ระบุด้านล่าง (ขอบคุณ!) แต่ฉันยังคงมีปัญหาอยู่ โดยพื้นฐานแล้วรหัสขัดข้องตอนนี้และฉันไม่แน่ใจว่าทำไมเพราะมันไม่ได้มีข้อผิดพลาดใด ๆ บางทีฉันขาดพื้นฐานบางอย่างและฉันเหนื่อยเกินไป แต่เราจะเห็น นี่คือการใช้งานคลาสที่กำหนดเองของฉัน "ผู้เล่น": @interface Player : NSObject { NSString *name; NSNumber *life; //Log of …

26
ไม่สามารถซ่อนแถบสถานะใน iOS7
ฉันเพิ่งอัพเกรด iPhone 5 iOS 7 เป็นรุ่นเบต้าสี่ตัว ตอนนี้เมื่อฉันรันแอพของฉันจาก Xcode 5 บน iPhone นี้แถบสถานะจะไม่ซ่อนแม้ว่ามันจะควร ไม่ทำงาน: [[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationFade]; ไม่ทำงาน: [UIApplication sharedApplication].statusBarHidden = YES; ไม่สามารถลงชื่อเข้าใช้ฟอรัมนักพัฒนาของ Apple

16
แนวทางปฏิบัติที่ดีที่สุดสำหรับการเอาชนะ isEqual: และ hash
คุณจะแทนที่อย่างถูกต้องisEqual:ใน Objective-C ได้อย่างไร? "การจับ" ดูเหมือนว่าถ้าวัตถุสองตัวเท่ากัน (ตามที่กำหนดโดยisEqual:วิธีการ) พวกเขาจะต้องมีค่าแฮชเดียวกัน วิปัสสนาส่วนของคู่มือความรู้พื้นฐานโกโก้จะมีตัวอย่างเกี่ยวกับวิธีการแทนที่isEqual:คัดลอกดังต่อไปนี้สำหรับการเรียนที่ชื่อMyWidget: - (BOOL)isEqual:(id)other { if (other == self) return YES; if (!other || ![other isKindOfClass:[self class]]) return NO; return [self isEqualToWidget:other]; } - (BOOL)isEqualToWidget:(MyWidget *)aWidget { if (self == aWidget) return YES; if (![(id)[self name] isEqual:[aWidget name]]) return NO; if (![[self data] isEqualToData:[aWidget …

27
วิธีการบังคับ NSLocalizedString ให้ใช้ภาษาเฉพาะ
บน iPhone NSLocalizedStringส่งคืนสตริงในภาษาของ iPhone เป็นไปได้ไหมที่จะบังคับNSLocalizedStringให้ใช้ภาษาเฉพาะเพื่อให้แอปมีภาษาที่แตกต่างจากอุปกรณ์

30
ตรวจสอบว่าอุปกรณ์เป็น iPhone X
แอพ iOS ของฉันใช้ความสูงที่กำหนดเองUINavigationBarซึ่งนำไปสู่ปัญหาบางอย่างใน iPhone X ใหม่ มีคนรู้วิธีตรวจสอบความน่าเชื่อถือทางโปรแกรม (ใน Objective-C) แล้วหรือไม่หากแอปทำงานบน iPhone X แก้ไข: แน่นอนการตรวจสอบขนาดของหน้าจอเป็นไปได้ แต่ฉันสงสัยว่ามีบางวิธี "สร้างใน" ต้องการTARGET_OS_IPHONEตรวจจับ iOS ... if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) { CGSize screenSize = [[UIScreen mainScreen] bounds].size; if (screenSize.height == 812) NSLog(@"iPhone X"); } แก้ไข 2: ฉันไม่คิดว่าคำถามของฉันซ้ำกับคำถามที่เชื่อมโยง แน่นอนว่ามีวิธีการ "วัด" คุณสมบัติต่าง ๆ ของอุปกรณ์ปัจจุบันและใช้ผลลัพธ์ในการตัดสินใจว่าจะใช้อุปกรณ์ใด อย่างไรก็ตามนี่ไม่ใช่จุดที่แท้จริงของคำถามของฉันเพราะฉันพยายามเน้นในการแก้ไขครั้งแรกของฉัน คำถามที่แท้จริงคือ: "เป็นไปได้หรือไม่ที่จะตรวจสอบโดยตรงว่าอุปกรณ์ปัจจุบันเป็น iPhone X …

25
ไม่สามารถใช้คลาส Swift ภายใน Objective-C
ฉันพยายามรวมSwiftรหัสในแอพของฉันแอพของฉันเขียนขึ้นObjective-Cและฉันเพิ่มSwiftคลาส ฉันได้ทำทุกอย่างที่อธิบายไว้ที่นี่ แต่ปัญหาของฉันคือXcodeยังไม่ได้สร้าง-Swift.hไฟล์เฉพาะส่วนหัวการเชื่อมโยง ดังนั้นฉันจึงสร้างมันขึ้นมา แต่มันว่างเปล่าจริง ๆ ฉันสามารถใช้คลาส ObjC ของฉันทั้งหมดใน Swift ได้ แต่ฉันไม่สามารถทำได้ในทางกลับกัน ฉันทำเครื่องหมายชั้นเรียนที่รวดเร็วด้วย@objcแต่มันก็ไม่ได้ช่วยอะไร ฉันจะทำอะไรได้บ้าง แก้ไข: Apple พูดว่า: "เมื่อคุณนำเข้ารหัส Swift ลงใน Objective-C คุณต้องใช้Xcode-generatedไฟล์ส่วนหัวเพื่อเปิดเผยไฟล์เหล่านั้นไปยัง Objective-C [... ] ชื่อของส่วนหัวนี้คือชื่อโมดูลผลิตภัณฑ์ของคุณตามด้วยการเพิ่ม" -Swift.h”. " ตอนนี้เมื่อฉันต้องการนำเข้าไฟล์นั้นมันมีข้อผิดพลาด: //MainMenu.m #import "myProjectModule-Swift.h" //Error: 'myProjectModule-Swift.h' file not found @implementation MainMenu นี่คือไฟล์ FBManager.swift ของฉัน: @objc class FBManager: NSObject { var descr = …
260 ios  objective-c  swift 

16
iOS ตรวจพบว่าผู้ใช้อยู่บน iPad หรือไม่
ฉันมีแอพที่ทำงานบน iPhone และ iPod Touch มันสามารถทำงานได้บน Retina iPad และทุกอย่าง แต่ต้องมีการปรับแต่งหนึ่งครั้ง ฉันต้องการตรวจสอบว่าอุปกรณ์ปัจจุบันเป็น iPad หรือไม่ ฉันสามารถใช้รหัสใดในการตรวจสอบว่าผู้ใช้กำลังใช้ iPad ในของฉันUIViewControllerและเปลี่ยนบางสิ่งตามนั้นหรือไม่
260 ios  objective-c  swift  ipad  device 

5
คุณจะเพิ่มการซื้อในแอพลงในแอปพลิเคชัน iOS ได้อย่างไร
คุณจะเพิ่มการซื้อในแอพในแอพ iOS ได้อย่างไร รายละเอียดทั้งหมดมีอะไรบ้างและมีรหัสตัวอย่างหรือไม่ นี่เป็นวิธีที่น่าสนใจสำหรับวิธีเพิ่มการซื้อในแอพในแอพ iOS

4
GCD เพื่อทำงานในเธรดหลัก
ฉันมีการโทรกลับซึ่งอาจมาจากเธรดใด ๆ เมื่อฉันได้รับการติดต่อกลับนี้ฉันต้องการทำงานบางอย่างบนเธรดหลัก ฉันจำเป็นต้องตรวจสอบว่าฉันอยู่ในหัวข้อหลักแล้วหรือมีบทลงโทษใด ๆ หรือไม่โดยไม่ทำการตรวจสอบนี้ก่อนที่จะเรียกรหัสด้านล่าง dispatch_async(dispatch_get_main_queue(), ^{ // do work here });

14
ข้อความตัวหนาและไม่เป็นตัวหนาใน UILabel เดียว?
เป็นไปได้อย่างไรที่จะรวมทั้งตัวหนาและตัวหนาใน uiLabel ฉันไม่ควรใช้ UIWebView .. ฉันอ่านแล้วอาจเป็นไปได้โดยใช้ NSAttributedString แต่ฉันไม่รู้ว่าจะใช้ยังไง ความคิดใด ๆ Apple ประสบความสำเร็จในหลาย ๆ แอพ สกรีนช็อตตัวอย่าง: ขอบคุณ! - ดอม

30
วิธีค้นหาคอนโทรลเลอร์มุมมองสูงสุดบน iOS
ฉันพบหลายกรณีในขณะนี้ซึ่งจะสะดวกในการค้นหาตัวควบคุมมุมมอง "ระดับบนสุด" (ตัวควบคุมที่รับผิดชอบมุมมองปัจจุบัน) แต่ก็ไม่พบวิธีที่จะทำได้ โดยทั่วไปความท้าทายคือ: ระบุว่าสิ่งหนึ่งกำลังดำเนินการในคลาสที่ไม่ใช่ตัวควบคุมมุมมอง (หรือมุมมอง) [และไม่มีที่อยู่ของมุมมองที่ใช้งานอยู่]และไม่ได้ผ่านที่อยู่ของตัวควบคุมมุมมองสูงสุด ( หรือว่าที่อยู่ของตัวควบคุมทิศทาง) เป็นไปได้หรือไม่ที่จะพบตัวควบคุมมุมมองนั้น (และถ้าเป็นเช่นนั้นได้อย่างไร) หรือล้มเหลวนั้นเป็นไปได้หรือไม่ที่จะพบมุมมองสูงสุด?


6
ส่งการอ้างอิงตนเองที่อ่อนแอไปยังบล็อกใน ARC เสมอหรือไม่
ฉันสับสนเล็กน้อยเกี่ยวกับการใช้งานบล็อกใน Objective-C ปัจจุบันฉันใช้ ARC และมีบล็อกจำนวนมากในแอปของฉันในปัจจุบันอ้างอิงถึงเสมอselfแทนที่จะเป็นข้อมูลอ้างอิงที่อ่อนแอ นั่นอาจเป็นสาเหตุของบล็อกเหล่านี้ในการรักษาselfและป้องกันไม่ให้ถูกจัดสรรคืน? คำถามคือฉันควรใช้การweakอ้างอิงselfในบล็อกหรือไม่ -(void)handleNewerData:(NSArray *)arr { ProcessOperation *operation = [[ProcessOperation alloc] initWithDataToProcess:arr completion:^(NSMutableArray *rows) { dispatch_async(dispatch_get_main_queue(), ^{ [self updateFeed:arr rows:rows]; }); }]; [dataProcessQueue addOperation:operation]; } ProcessOperation.h @interface ProcessOperation : NSOperation { NSMutableArray *dataArr; NSMutableArray *rowHeightsArr; void (^callback)(NSMutableArray *rows); } ProcessOperation.m -(id)initWithDataToProcess:(NSArray *)data completion:(void (^)(NSMutableArray *rows))cb{ if(self …

22
ตั้งค่าตัวควบคุมมุมมองเริ่มต้นโดยทางโปรแกรมโดยใช้กระดานเรื่องราว
ฉันจะตั้งInitialViewControllerเป็นกระดานเรื่องราวได้อย่างไร ฉันต้องการเปิดกระดานเรื่องราวของฉันให้มีมุมมองที่แตกต่างกันขึ้นอยู่กับเงื่อนไขบางอย่างซึ่งอาจแตกต่างจากการเปิดตัวสู่การเปิดตัว


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