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

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

9
มีวิธีลบบรรทัดตัวแยกออกจาก UITableView หรือไม่
ฉันกำลังมองหาวิธีที่จะลบเส้นคั่นใน UITableView อย่างสมบูรณ์เมื่ออยู่ในโหมดธรรมดา สิ่งนี้ทำได้โดยอัตโนมัติในการจัดกลุ่ม แต่สิ่งนี้จะเปลี่ยนขนาดของตารางด้วยวิธีที่ยากต่อการวัด ฉันได้ตั้งค่าสีของตัวแยกบรรทัดเป็น colorClear แต่นี่ยังไม่สามารถแก้ปัญหาได้อย่างสมบูรณ์ ขณะที่ฉันพยายามวาดมุมมองพื้นหลังแบบกำหนดเองในเซลล์และฉันต้องการให้เซลล์ไร้รอยต่อหนึ่งพิกเซลที่เหลืออยู่ระหว่างนั้นทำให้ฉันมีปัญหา มีวิธีแก้ปัญหาที่หรูหรากว่าใช้มุมมองที่จัดกลุ่มแล้วยืดออกหรือไม่

22
หยุด UIWebView จาก“ เด้ง” ในแนวตั้งหรือไม่
ไม่มีใครรู้วิธีที่จะหยุด UIWebView จากการตีกลับในแนวตั้ง? ฉันหมายถึงเมื่อผู้ใช้สัมผัสหน้าจอ iPhone ของพวกเขาลากนิ้วลงและเว็บวิวจะแสดงจุดว่างด้านบนของเว็บเพจที่ฉันโหลด ฉันได้ดูวิธีแก้ปัญหาที่เป็นไปได้ แต่ไม่มีวิธีใดที่ใช้ได้ผลสำหรับฉัน: http://www.iphonedevsdk.com/forum/iphone-sdk-development/996-turn-off-scrolling-bounces-uiwebview.html http://forums.macrumors.com/showthread.php?t=619534 ฉันจะหยุด UIScrollView จากการตีกลับในแนวนอนได้อย่างไร

30
ฉันจะเปลี่ยนชื่อของปุ่ม“ ย้อนกลับ” บนแถบนำทางได้อย่างไร
ปัจจุบันค่าเริ่มต้นของปุ่มแถบด้านซ้ายคือชื่อของมุมมองที่โหลดมุมมองปัจจุบันหรืออีกนัยหนึ่งมุมมองที่จะแสดงเมื่อกดปุ่ม (ปุ่มย้อนกลับ) ฉันต้องการเปลี่ยนข้อความที่แสดงบนปุ่มเป็นอย่างอื่น ฉันพยายามวางบรรทัดของรหัสต่อไปนี้ในวิธี viewDidLoad ของตัวควบคุมมุมมอง แต่ดูเหมือนจะไม่ทำงาน self.navigationItem.leftBarButtonItem.title = @"Log Out"; ฉันควรทำอย่างไรดี? ขอบคุณ


9
การตั้งค่าความสูง UITableViewCells ที่กำหนดเอง
ฉันใช้ UITableViewCell ที่กำหนดเองซึ่งมีป้ายกำกับปุ่มและมุมมองรูปภาพที่จะแสดง มีหนึ่งป้ายในเซลล์ที่มีข้อความเป็นNSStringวัตถุและความยาวของสตริงอาจเป็นตัวแปรได้ เนื่องจากนี้ฉันไม่สามารถตั้งค่าความสูงอย่างต่อเนื่องไปยังเซลล์ในส่วนUITableViewของheightForCellAtIndexวิธีการ ความสูงของเซลล์ที่ขึ้นอยู่กับความสูงของป้ายซึ่งสามารถตรวจสอบการใช้NSString's sizeWithFontวิธี ฉันลองใช้มัน แต่ดูเหมือนว่าฉันผิดไปที่ไหนซักแห่ง จะแก้ไขอย่างไร? นี่คือรหัสที่ใช้ในการเริ่มต้นเซลล์ if (self = [super initWithFrame:frame reuseIdentifier:reuseIdentifier]) { self.selectionStyle = UITableViewCellSelectionStyleNone; UIImage *image = [UIImage imageNamed:@"dot.png"]; imageView = [[UIImageView alloc] initWithImage:image]; imageView.frame = CGRectMake(45.0,10.0,10,10); headingTxt = [[UILabel alloc] initWithFrame: CGRectMake(60.0,0.0,150.0,post_hdg_ht)]; [headingTxt setContentMode: UIViewContentModeCenter]; headingTxt.text = postData.user_f_name; headingTxt.font = [UIFont boldSystemFontOfSize:13]; …

8
ฉันจะหลีกเลี่ยงการจับภาพตนเองเป็นบล็อกเมื่อใช้งาน API ได้อย่างไร
ฉันมีแอพที่ใช้งานได้และกำลังแปลงเป็น ARC ใน Xcode 4.2 หนึ่งในคำเตือนก่อนการตรวจสอบที่เกี่ยวข้องกับการจับselfอย่างยิ่งในบล็อกที่นำไปสู่วงจรการเก็บรักษา ฉันได้สร้างตัวอย่างโค้ดง่ายๆเพื่ออธิบายปัญหา ฉันเชื่อว่าฉันเข้าใจความหมายของสิ่งนี้ แต่ฉันไม่แน่ใจว่า "ถูกต้อง" หรือวิธีที่แนะนำให้ใช้สถานการณ์ประเภทนี้ self เป็นตัวอย่างของคลาส MyAPI รหัสด้านล่างนั้นง่ายขึ้นเพื่อแสดงเฉพาะการโต้ตอบกับวัตถุและบล็อกที่เกี่ยวข้องกับคำถามของฉัน สมมติว่า MyAPI รับข้อมูลจากแหล่งข้อมูลระยะไกลและ MyDataProcessor ทำงานกับข้อมูลนั้นและสร้างเอาต์พุต โปรเซสเซอร์ได้รับการกำหนดค่าด้วยบล็อกเพื่อสื่อสารความคืบหน้าและสถานะ ตัวอย่างโค้ด: // code sample self.delegate = aDelegate; self.dataProcessor = [[MyDataProcessor alloc] init]; self.dataProcessor.progress = ^(CGFloat percentComplete) { [self.delegate myAPI:self isProcessingWithProgress:percentComplete]; }; self.dataProcessor.completion = ^{ [self.delegate myAPIDidFinish:self]; self.dataProcessor = nil; …

7
ส่งคำขอ POST โดยใช้ NSURLSession
ปรับปรุง:พบวิธีแก้ปัญหา คุณสามารถอ่านได้ในตอนท้ายของโพสต์ ฉันพยายามที่จะดำเนินการคำขอ POST ไป REST API NSURLSessionระยะไกลโดยใช้ ความคิดที่จะทำตามคำขอที่มีสองพารามิเตอร์และdeviceIdtextContent ปัญหาคือว่าเซิร์ฟเวอร์ไม่รู้จักพารามิเตอร์เหล่านั้น ส่วนของเซิร์ฟเวอร์ทำงานได้อย่างถูกต้องเพราะฉันส่ง POST โดยใช้ POSTMAN สำหรับ Google Chrome และทำงานได้อย่างสมบูรณ์ นี่คือรหัสที่ฉันใช้อยู่ตอนนี้: NSString *deviceID = [[NSUserDefaults standardUserDefaults] objectForKey:@"deviceID"]; NSString *textContent = @"New note"; NSString *noteDataString = [NSString stringWithFormat:@"deviceId=%@&textContent=%@", deviceID, textContent]; NSURLSessionConfiguration *sessionConfiguration = [NSURLSessionConfiguration defaultSessionConfiguration]; sessionConfiguration.HTTPAdditionalHeaders = @{ @"api-key" : @"API_KEY", @"Content-Type" : …

30
สัญลักษณ์ที่ซ้ำกันสำหรับสถาปัตยกรรม x86_64 ภายใต้ Xcode
ตอนนี้ฉันมีคำถามเดียวกันกับชื่อข้างต้น แต่ยังไม่พบคำตอบที่ถูกต้อง ฉันได้รับข้อผิดพลาด: /Users/nle/Library/Developer/Xcode/DerivedData/TestMoboSDK-Client-cgodalyxmwqzynaxfbbewrooymnq/Build/Intermediates/TestMoboSDK-Client.build/Debug-iphonesimulator/TestMoboSDK-Client.build/Objects-normal/x86_64/MoboSDK.o /Users/nle/Library/Developer/Xcode/DerivedData/TestMoboSDK-Client-cgodalyxmwqzynaxfbbewrooymnq/Build/Products/Debug-iphonesimulator/libMoboSDK.a(MoboSDK.o) duplicate symbol _OBJC_METACLASS_$_MoboSDK in: /Users/nle/Library/Developer/Xcode/DerivedData/TestMoboSDK-Client-cgodalyxmwqzynaxfbbewrooymnq/Build/Intermediates/TestMoboSDK-Client.build/Debug-iphonesimulator/TestMoboSDK-Client.build/Objects-normal/x86_64/MoboSDK.o /Users/nle/Library/Developer/Xcode/DerivedData/TestMoboSDK-Client-cgodalyxmwqzynaxfbbewrooymnq/Build/Products/Debug-iphonesimulator/libMoboSDK.a(MoboSDK.o) ld: 75 duplicate symbols for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation) ความช่วยเหลือใด ๆ ที่ชื่นชม ในที่สุด ผมก็หาเหตุผลของข้อผิดพลาดนี้ทำให้ฉันเพิ่มไปยัง-ObjC Other Linker Flagsหลังจากลบค่านี้แล้วฉันสามารถสร้างโครงการได้สำเร็จ แต่ฉันไม่รู้ว่าทำไม มีใครอธิบายเรื่องนี้ได้บ้าง
219 ios  objective-c  xcode5 

26
บริบทที่ไม่ถูกต้อง 0x0 ภายใต้ iOS 7.0 และระบบย่อยสลาย
ฉันได้อ่านผลการค้นหามากมายที่ฉันสามารถค้นหาเกี่ยวกับปัญหาที่น่าสะพรึงกลัวนี้โชคไม่ดีที่แต่ละคนดูเหมือนจะมุ่งเน้นไปที่ฟังก์ชั่นการโทรที่เฉพาะเจาะจง ปัญหาของฉันคือฉันได้รับข้อผิดพลาดเดียวกันจากหลายฟังก์ชั่นซึ่งฉันเดาว่าจะถูกเรียกกลับจากฟังก์ชั่นที่ฉันใช้ เพื่อทำให้เรื่องแย่ลงรหัสที่แท้จริงนั้นอยู่ในกรอบงานส่วนบุคคลที่กำหนดเองซึ่งกำลังนำเข้าในโครงการอื่นและการแก้จุดบกพร่องนั้นไม่ง่ายใช่ไหม ใครช่วยชี้ทางให้ฉันได้? ฉันรู้สึกว่าฉันกำลังเรียกวิธีการบางอย่างไม่ถูกต้องหรือมีบริบทที่ไม่ดี แต่ผลลัพธ์จาก xcode ไม่เป็นประโยชน์ในตอนนี้ : CGContextSetFillColorWithColor: บริบทที่ไม่ถูกต้อง 0x0 นี่เป็นข้อผิดพลาดร้ายแรง แอปพลิเคชั่นนี้หรือไลบรารีที่ใช้กำลังใช้บริบทที่ไม่ถูกต้องและมีส่วนทำให้ความเสถียรและความน่าเชื่อถือของระบบโดยรวมลดลง การแจ้งเตือนนี้เป็นมารยาท: โปรดแก้ไขปัญหานี้ มันจะกลายเป็นข้อผิดพลาดร้ายแรงในการอัปเดตที่จะเกิดขึ้น : CGContextSetStrokeColorWithColor: บริบทที่ไม่ถูกต้อง 0x0 นี่เป็นข้อผิดพลาดร้ายแรง แอปพลิเคชั่นนี้หรือไลบรารีที่ใช้กำลังใช้บริบทที่ไม่ถูกต้องและมีส่วนทำให้ความเสถียรและความน่าเชื่อถือของระบบโดยรวมลดลง การแจ้งเตือนนี้เป็นมารยาท: โปรดแก้ไขปัญหานี้ มันจะกลายเป็นข้อผิดพลาดร้ายแรงในการอัปเดตที่จะเกิดขึ้น CGContextSaveGState: บริบทที่ไม่ถูกต้อง 0x0 นี่เป็นข้อผิดพลาดร้ายแรง แอปพลิเคชั่นนี้หรือไลบรารีที่ใช้กำลังใช้บริบทที่ไม่ถูกต้องและมีส่วนทำให้ความเสถียรและความน่าเชื่อถือของระบบโดยรวมลดลง การแจ้งเตือนนี้เป็นมารยาท: โปรดแก้ไขปัญหานี้ มันจะกลายเป็นข้อผิดพลาดร้ายแรงในการอัปเดตที่จะเกิดขึ้น : CGContextSetFlatness: บริบทที่ไม่ถูกต้อง 0x0 นี่เป็นข้อผิดพลาดร้ายแรง แอปพลิเคชั่นนี้หรือไลบรารีที่ใช้กำลังใช้บริบทที่ไม่ถูกต้องและมีส่วนทำให้ความเสถียรและความน่าเชื่อถือของระบบโดยรวมลดลง การแจ้งเตือนนี้เป็นมารยาท: โปรดแก้ไขปัญหานี้ มันจะกลายเป็นข้อผิดพลาดร้ายแรงในการอัปเดตที่จะเกิดขึ้น : CGContextAddPath: บริบทที่ไม่ถูกต้อง 0x0 นี่เป็นข้อผิดพลาดร้ายแรง แอปพลิเคชั่นนี้หรือไลบรารีที่ใช้กำลังใช้บริบทที่ไม่ถูกต้องและมีส่วนทำให้ความเสถียรและความน่าเชื่อถือของระบบโดยรวมลดลง การแจ้งเตือนนี้เป็นมารยาท: …

6
ในกระดานเรื่องราวฉันจะสร้างเซลล์แบบกำหนดเองสำหรับใช้กับตัวควบคุมหลายตัวได้อย่างไร
ฉันกำลังพยายามใช้กระดานเรื่องราวในแอปที่ฉันกำลังทำงานอยู่ ในแอพนี้มีรายการและผู้ใช้และแต่ละรายการมีชุดสะสมอื่น ๆ (สมาชิกของรายการรายการที่ผู้ใช้เป็นเจ้าของ) ดังนั้นฉันมีListCellและUserCellชั้นเรียน เป้าหมายคือการให้ผู้ใช้สามารถใช้งานซ้ำได้ทั่วทั้งแอพ (เช่นในตัวควบคุม tableview ของฉัน) นั่นคือสิ่งที่ฉันกำลังประสบปัญหา ฉันจะสร้างเซลล์ tableview ที่กำหนดเองในสตอรี่บอร์ดที่สามารถนำกลับมาใช้ใหม่ได้ในตัวควบคุมมุมมองใด ๆ นี่คือสิ่งเฉพาะที่ฉันได้ลองไปแล้ว ใน Controller # 1 เพิ่มเซลล์ต้นแบบตั้งค่าคลาสเป็นUITableViewCellคลาสย่อยของฉันตั้งค่ารหัสนำมาใช้ใหม่เพิ่มป้ายชื่อและต่อสายเข้ากับช่องเสียบของชั้นเรียน ใน Controller # 2 เพิ่มเซลล์ต้นแบบที่ว่างเปล่าตั้งเป็นคลาสเดียวกันและใช้รหัสซ้ำเหมือนเดิม เมื่อมันทำงานป้ายกำกับจะไม่ปรากฏขึ้นเมื่อมีการแสดงเซลล์ในตัวควบคุม # 2 ทำงานได้ดีใน Controller # 1 ออกแบบแต่ละชนิดของเซลล์ใน NIB ที่แตกต่างกันและต่อสายเข้ากับระดับเซลล์ที่เหมาะสม ในกระดานเรื่องราวเพิ่มเซลล์ต้นแบบที่ว่างเปล่าและตั้งค่าคลาสและใช้รหัสซ้ำเพื่ออ้างอิงถึงชั้นเซลล์ ในviewDidLoadวิธีการของตัวควบคุมให้ลงทะเบียนไฟล์ NIB เหล่านั้นสำหรับรหัสที่ใช้ซ้ำ เมื่อแสดงเซลล์ในตัวควบคุมทั้งสองจะว่างเปล่าเหมือนต้นแบบ เก็บต้นแบบในตัวควบคุมทั้งสองว่างและตั้งค่าคลาสและใช้ id ซ้ำกับคลาสเซลล์ของฉัน สร้าง UI ของเซลล์ทั้งหมดในโค้ด เซลล์ทำงานอย่างสมบูรณ์แบบในตัวควบคุมทั้งหมด ในกรณีที่สองฉันสงสัยว่าต้นแบบจะมีผลเหนือกว่า NIB เสมอและถ้าฉันฆ่าเซลล์ต้นแบบการลงทะเบียน …

7
แอปพลิเคชัน WillEnterForeground vs. applicationDidBecomeActive, แอปพลิเคชัน WillResignActive กับ applicationDidEnterBackground
ผู้รับมอบสิทธิ์ที่เหมาะสมที่จะใช้งานเมื่อแอปพลิเคชันตื่นขึ้นมาจากพื้นหลังและคุณต้องการให้แอปพลิเคชันเตรียมใช้งานอยู่ applicationWillEnterForeground vs applicationDidBecomeActive - ความแตกต่างคืออะไร ผู้รับมอบสิทธิ์ที่เหมาะสมที่จะใช้งานเมื่อแอปพลิเคชันกำลังจะเข้าสู่โหมดสลีปและคุณต้องการจัดเตรียมแอปพลิเคชันเพื่อล้างข้อมูลและบันทึกข้อมูล applicationWillResignActive vs. applicationDidEnterBackground - ความแตกต่างคืออะไร นอกจากนี้ฉันยังสังเกตเห็นว่า applicationWillResignActive ได้รับการโทรเมื่อมี SMS เข้ามาหรือโทรเข้ามา แต่ผู้ใช้เลือกที่จะคลิกตกลงและดำเนินการต่อ ฉันไม่ต้องการให้แอปดำเนินการใด ๆ ในกรณีเหล่านี้ ฉันแค่ต้องการให้มันทำงานต่อไปโดยไม่ต้องล้างข้อมูลกลางใด ๆ เนื่องจากผู้ใช้ไม่ได้ออกจากแอป ดังนั้นฉันคิดว่ามันเหมาะสมกว่าที่จะทำการล้างข้อมูลในแอปพลิเคชัน DidEnterBackground ฉันขอขอบคุณที่คุณป้อนข้อมูลเกี่ยวกับแนวทางปฏิบัติที่ดีที่สุดเพื่อเลือกผู้ได้รับมอบหมายที่จะตื่นขึ้นและเข้านอนรวมถึงการพิจารณาเหตุการณ์ที่ถูกขัดจังหวะด้วย SMS / การโทร ขอบคุณ

8
ITSAppUsesNonExemptEncryption ส่งออกการปฏิบัติตามข้อกำหนดขณะทดสอบภายใน?
ฉันได้รับข้อความนี้ขณะที่เลือกสร้างสำหรับการทดสอบภายในฉันบอกว่าเกี่ยวกับการตั้งค่าITSAppUsesNonExemptEncryptionใน info.plist มันหมายถึงอะไร? จำเป็นหรือไม่

5
@ เก็บรักษามอบหมายสำเนา nonatomic ใน Objective-C
ในฐานะที่เป็นคนใหม่สำหรับ Objective-C ใครบางคนสามารถให้ภาพรวมของการเก็บรักษามอบหมายคัดลอกและอื่น ๆ ที่ฉันหายไปซึ่งเป็นไปตามคำสั่ง @property หรือไม่ พวกเขากำลังทำอะไรและทำไมฉันจึงต้องการใช้งานมากกว่ากัน

13
แป้นพิมพ์ iPad จะไม่ยกเลิกหากรูปแบบการนำเสนอ ViewController เป็นกิริยาช่วยเป็น UIModalPresentationFormSheet
บันทึก: ดูคำตอบที่ยอมรับ (ไม่ได้รับการโหวตสูงสุด) สำหรับวิธีแก้ปัญหาตั้งแต่ iOS 4.3 นี้คำถามที่เป็นเรื่องเกี่ยวกับพฤติกรรมที่พบในแป้นพิมพ์ iPad ที่จะปฏิเสธที่จะถูกไล่ออกถ้าแสดงในกิริยาโต้ตอบกับตัวควบคุมนำทาง โดยทั่วไปถ้าฉันแสดงตัวควบคุมการนำทางด้วยบรรทัดต่อไปนี้: navigationController.modalPresentationStyle = UIModalPresentationFormSheet; แป้นพิมพ์ปฏิเสธที่จะถูกไล่ออก หากฉันใส่ความคิดเห็นในบรรทัดนี้แป้นพิมพ์ก็หายไป ... ฉันมีสองฟิลด์ข้อความชื่อผู้ใช้และรหัสผ่าน ชื่อผู้ใช้มีปุ่มถัดไปและรหัสผ่านมีปุ่มเสร็จสิ้น แป้นพิมพ์จะไม่หายไปหากฉันนำเสนอสิ่งนี้ในตัวควบคุมการนำทางแบบโมดอล WORKS broken *b = [[broken alloc] initWithNibName:@"broken" bundle:nil]; [self.view addSubview:b.view]; ไม่ทำงาน, ไม่เป็นผล broken *b = [[broken alloc] initWithNibName:@"broken" bundle:nil]; UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:b]; navigationController.modalPresentationStyle = UIModalPresentationFormSheet; navigationController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; …

24
วิธียกเลิกการเลือกเซลล์ UITableView ที่เลือก
ฉันกำลังทำงานในโครงการที่ฉันต้องเลือกเซลล์ล่วงหน้า ฉันสามารถเลือกเซลล์ที่ใช้ล่วงหน้า-willDisplayCellแต่ไม่สามารถยกเลิกการเลือกเซลล์เมื่อผู้ใช้คลิกที่เซลล์อื่น - (void)tableView:(UITableView*)tableView willDisplayCell:(UITableViewCell*)cell forRowAtIndexPath:(NSIndexPath*)indexPath { AppDelegate_iPad *appDelegte = (AppDelegate_iPad *)[[UIApplication sharedApplication] delegate]; if ([appDelegte.indexPathDelegate row] == [indexPath row]) { [cell setSelected:YES]; } } - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { AppDelegate_iPad *appDelegte = (AppDelegate_iPad *)[[UIApplication sharedApplication] delegate]; NSIndexPath *indexpath1 = appDelegte.indexPathDelegate; appDelegte.indexPathDelegate = indexPath; [materialTable deselectRowAtIndexPath:indexpath1 animated:NO]; } คุณช่วยได้ไหม

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