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

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

7
เวลาผ่านไปใน Objective-C
ฉันต้องการให้เวลาผ่านไประหว่างสองเหตุการณ์ตัวอย่างเช่นการปรากฏตัวของ UIView และปฏิกิริยาแรกของผู้ใช้ ฉันจะทำให้สำเร็จใน Objective-C ได้อย่างไร
153 ios  objective-c 

6
NSLog ชื่อวิธีการด้วย Objective-C ใน iPhone
ขณะนี้เรากำลังกำหนดกลไกการบันทึกเพิ่มเติมเพื่อพิมพ์ชื่อคลาสและหมายเลขบรรทัดซอร์สของบันทึก #define NCLog(s, ...) NSLog(@"<%@:%d> %@", [[NSString stringWithUTF8String:__FILE__] lastPathComponent], \ __LINE__, [NSString stringWithFormat:(s), ##__VA_ARGS__]) ตัวอย่างเช่นเมื่อฉันโทร NCLog (@ "Hello world"); ผลลัพธ์จะเป็น: <ApplicationDelegate:10>Hello world ตอนนี้ฉันต้องการออกจากระบบชื่อวิธีเช่น: <ApplicationDelegate:applicationDidFinishLaunching:10>Hello world ดังนั้นสิ่งนี้จะทำให้การดีบักของเราง่ายขึ้นเมื่อเรารู้วิธีการที่เรียกใช้ ฉันรู้ว่าเรามี Xcode debugger ด้วย แต่บางครั้งฉันก็อยากทำการดีบั๊กด้วยการออกจากระบบ

7
ทำไมคุณถึงต้องใช้ ivar?
ฉันมักจะเห็นคำถามนี้ถามวิธีอื่นเช่นต้องมี ivar ทุกตัวหรือไม่ (และฉันชอบคำตอบของบีบีมต่อคำถามนี้) ฉันใช้คุณสมบัติเกือบทั้งหมดในรหัสของฉัน อย่างไรก็ตามบ่อยครั้งที่ฉันทำงานกับผู้รับเหมาที่พัฒนาบน iOS มาเป็นเวลานานและเป็นโปรแกรมเมอร์เกมแบบดั้งเดิม เขาเขียนโค้ดที่ประกาศเกือบจะไม่มีคุณสมบัติใด ๆ และโน้มตัวลงบน ivars ฉันคิดว่าเขาทำสิ่งนี้เพราะ 1. ) เขาคุ้นเคยกับมันเนื่องจากคุณสมบัติไม่ได้มีอยู่เสมอจนกว่า Objective C 2.0 (Oct '07) และ 2) สำหรับการเพิ่มประสิทธิภาพขั้นต่ำที่จะไม่ทะลุผ่านตัวตั้งค่า ในขณะที่เขาเขียนโค้ดที่ไม่รั่วไหลฉันยังต้องการให้เขาใช้คุณสมบัติมากกว่า ivars เราพูดถึงเรื่องนี้และเขาไม่เห็นเหตุผลมากที่จะใช้คุณสมบัติเนื่องจากเราไม่ได้ใช้ KVO และเขามีประสบการณ์ในการดูแลปัญหาหน่วยความจำ คำถามของฉันมีมากขึ้น ... ทำไมคุณถึงอยากใช้ช่วงเวลา ivar - มีประสบการณ์หรือไม่ มีความแตกต่างด้านประสิทธิภาพที่ยอดเยี่ยมที่การใช้ ivar จริงหรือไม่? นอกจากนี้เพื่อความกระจ่างฉันแทนที่ผู้ตั้งค่าและผู้เรียกใช้ตามความจำเป็นและใช้ ivar ที่สัมพันธ์กับคุณสมบัตินั้นภายในตัวรับ / ตัวตั้งค่า อย่างไรก็ตามนอก getter / setter หรือ init ฉันมักจะใช้self.myPropertyไวยากรณ์ …

6
หมวดหมู่ Objective-C ในห้องสมุดคงที่
คุณช่วยแนะนำวิธีการเชื่อมโยงไลบรารีคงที่กับโครงการ iPhone ให้ถูกต้องได้ไหม ฉันใช้โครงการห้องสมุดแบบสแตติกที่เพิ่มเข้ากับโครงการแอปเป็นการพึ่งพาโดยตรง (เป้าหมาย -> ทั่วไป -> การพึ่งพาโดยตรง) และใช้งานได้ดีทั้งหมดยกเว้นหมวดหมู่ หมวดหมู่ที่กำหนดในไลบรารีแบบคงที่ไม่ทำงานในแอป ดังนั้นคำถามของฉันคือวิธีเพิ่มไลบรารีแบบคงที่ที่มีบางหมวดหมู่ในโครงการอื่น และโดยทั่วไปวิธีปฏิบัติที่ดีที่สุดที่จะใช้ในรหัสโครงการแอปจากโครงการอื่นคืออะไร

16
วิธีฝังไอคอนขนาดเล็กใน UILabel
ฉันต้องฝังไอคอนเล็ก ๆ (เรียงลำดับของกระสุนที่กำหนดเอง) ลงUILabelใน iOS7 ฉันจะทำสิ่งนี้ในผู้ออกแบบอินเตอร์เฟสได้อย่างไร หรืออย่างน้อยในรหัส? ใน Android มีleftDrawableและrightDrawableสำหรับป้ายกำกับ แต่ทำใน iOS ได้อย่างไร ตัวอย่างใน Android:

5
จะดูว่า NSString เริ่มต้นด้วยสตริงอื่นได้อย่างไร?
ฉันพยายามตรวจสอบว่าสตริงที่ฉันจะใช้เป็น URL เริ่มต้นด้วย http หรือไม่ วิธีที่ฉันพยายามตรวจสอบตอนนี้ดูเหมือนจะไม่ทำงาน นี่คือรหัสของฉัน: NSMutableString *temp = [[NSMutableString alloc] initWithString:@"http://"]; if ([businessWebsite rangeOfString:@"http"].location == NSNotFound){ NSString *temp2 = [[NSString alloc] init]; temp2 = businessWebsite; [temp appendString:temp2]; businessWebsite = temp2; NSLog(@"Updated BusinessWebsite is: %@", businessWebsite); } [web setBusinessWebsiteUrl:businessWebsite]; ความคิดใด ๆ

9
iPhone: การตรวจจับการไม่ใช้งาน / เวลาว่างของผู้ใช้ตั้งแต่การสัมผัสหน้าจอครั้งสุดท้าย
มีใครบ้างที่ใช้งานฟีเจอร์นี้หากผู้ใช้ไม่ได้สัมผัสหน้าจอเป็นระยะเวลาหนึ่งคุณจะต้องดำเนินการบางอย่างหรือไม่? ฉันพยายามหาวิธีที่ดีที่สุดในการทำเช่นนั้น มีวิธีนี้ค่อนข้างเกี่ยวข้องใน UIApplication: [UIApplication sharedApplication].idleTimerDisabled; มันคงจะดีถ้าคุณมีบางอย่างเช่นนี้แทน: NSTimeInterval timeElapsed = [UIApplication sharedApplication].idleTimeElapsed; จากนั้นฉันสามารถตั้งค่าตัวจับเวลาและตรวจสอบค่านี้เป็นระยะและดำเนินการบางอย่างเมื่อเกินขีด จำกัด หวังว่าจะอธิบายสิ่งที่ฉันกำลังมองหา มีใครแก้ปัญหานี้แล้วหรือมีความคิดเกี่ยวกับวิธีที่คุณจะทำมันได้หรือไม่ ขอบคุณ

6
ความแตกต่างของ iOS ระหว่าง isKindOfClass และ isMemberOfClass
ความแตกต่างระหว่างisKindOfClass:(Class)aClassและisMemberOfClass:(Class)aClassฟังก์ชั่นคืออะไร? ฉันรู้ว่ามันเป็นเรื่องเล็ก ๆ น้อย ๆ อย่างหนึ่งคือทั่วโลกในขณะที่อีกรายการหนึ่งเป็นการแข่งขันที่ตรงกับคลาส ในสวิฟท์และisKind(of aClass: AnyClass)isMember(of aClass: AnyClass)


20
boundingRectWithSize สำหรับ NSAttributedString คืนขนาดผิด
ฉันพยายามรับค่า rect สำหรับสตริงที่ประกอบ แต่การเรียก boundingRectWithSize ไม่เคารพขนาดที่ฉันส่งเข้าไปและกำลังคืนค่า rect ที่มีความสูงบรรทัดเดียวซึ่งตรงข้ามกับความสูงขนาดใหญ่ (เป็นสตริงที่ยาว) ฉันได้ทดลองโดยการส่งผ่านค่าที่สูงมากสำหรับความสูงและ 0 เช่นเดียวกับในรหัสด้านล่าง CGRect paragraphRect = [attributedText boundingRectWithSize:CGSizeMake(300,0.0) options:NSStringDrawingUsesDeviceMetrics context:nil]; สิ่งนี้ขาดหรือฉันต้องทำอย่างอื่นเพื่อให้มันคืนค่า rect สำหรับข้อความที่ถูกห่อหรือไม่?

10
ฉันจะตัดข้อความใน UITableViewCell ได้อย่างไรโดยไม่มีเซลล์ที่กำหนดเอง
นี่คือบน iPhone 0S 2.0 คำตอบสำหรับ 2.1 ก็ใช้ได้เช่นกัน แต่ฉันก็ไม่ทราบถึงความแตกต่างใด ๆ เกี่ยวกับตาราง รู้สึกเหมือนเป็นไปได้ที่จะได้รับข้อความห่อโดยไม่ต้องสร้างเซลล์ที่กำหนดเองเนื่องจากUITableViewCellมีประกอบด้วยUILabelโดยค่าเริ่มต้น ฉันรู้ว่าฉันสามารถทำให้มันทำงานได้ถ้าฉันสร้างเซลล์ที่กำหนดเอง แต่นั่นไม่ใช่สิ่งที่ฉันพยายามที่จะบรรลุ - ฉันต้องการที่จะเข้าใจว่าทำไมวิธีการปัจจุบันของฉันไม่ทำงาน ฉันพบว่าฉลากถูกสร้างขึ้นตามความต้องการ (เนื่องจากเซลล์รองรับการเข้าถึงข้อความและรูปภาพดังนั้นจึงไม่สร้างมุมมองข้อมูลจนกว่าจะจำเป็น) ดังนั้นถ้าฉันทำสิ่งนี้: cell.text = @""; // create the label UILabel* label = (UILabel*)[[cell.contentView subviews] objectAtIndex:0]; จากนั้นฉันจะได้รับป้ายกำกับที่ถูกต้อง แต่การตั้งค่าnumberOfLinesนั้น (และ lineBreakMode) ไม่ทำงาน - ฉันยังได้รับข้อความบรรทัดเดียว มีมากมายของความสูงในการเป็นUILabelข้อความที่จะแสดงผล - heightForRowAtIndexPathฉันแค่กลับค่าขนาดใหญ่สำหรับความสูงใน

7
ฉันจะรับโปรเจ็กต์ iOS เวอร์ชันปัจจุบันของฉันในโค้ดได้อย่างไร
ฉันต้องการรับโครงการ iOS / แอปเวอร์ชันปัจจุบันของฉันเป็นNSStringวัตถุโดยไม่ต้องกำหนดค่าคงที่ในไฟล์ที่อื่น ฉันไม่ต้องการเปลี่ยนค่าเวอร์ชั่นของฉันใน 2 แห่ง ค่าจำเป็นต้องได้รับการปรับปรุงเมื่อฉันชนรุ่นของฉันในการสรุปเป้าหมายโครงการ
151 ios  objective-c  iphone  swift 

15
แปลง HTML เป็น NSAttributedString ใน iOS
ฉันใช้อินสแตนซ์ของUIWebViewการประมวลผลข้อความและสีอย่างถูกต้องมันให้ผลลัพธ์เป็น HTML แต่แทนที่จะแสดงในUIWebViewฉันต้องการแสดงโดยใช้Core TextNSAttributedStringกับ ฉันสามารถสร้างและวาด NSAttributedStringแต่ฉันไม่แน่ใจว่าฉันสามารถแปลงและแมป HTML ลงในสตริงที่ประกอบ ฉันเข้าใจว่าภายใต้ Mac OS X NSAttributedStringมีinitWithHTML:วิธีการ แต่นี่เป็น Mac เท่านั้นที่เพิ่มเติมและไม่สามารถใช้ได้กับ iOS ฉันก็รู้ว่ามีคำถามที่คล้ายกันนี้ แต่ไม่มีคำตอบฉันจะลองอีกครั้งและดูว่ามีใครสร้างวิธีการทำเช่นนี้หรือไม่ถ้าพวกเขาสามารถแบ่งปันได้

6
ควรใช้ enumerateObjectsUsingBlock กับเมื่อใด
นอกจากความแตกต่างที่ชัดเจน: ใช้enumerateObjectsUsingBlockเมื่อคุณต้องการทั้งดัชนีและวัตถุ อย่าใช้enumerateObjectsUsingBlockเมื่อคุณต้องการแก้ไขตัวแปรท้องถิ่น (ฉันผิดเกี่ยวกับเรื่องนี้ดูคำตอบของ bbum) มีการenumerateObjectsUsingBlockพิจารณาโดยทั่วไปดีขึ้นหรือแย่ลงเมื่อfor (id obj in myArray)ยังจะทำงานหรือไม่ อะไรคือข้อดี / ข้อเสีย (เช่นมันเป็นนักแสดงมากหรือน้อย)?


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