
18929371983
時間:2017/6/12 8:57:08
問題描述:因為不知道是什么語言,簡單說一下: 從字面理解,setValue 是設(shè)置數(shù)值,而setObject 是設(shè)置對象。 在使用NSMutableDictionary的時候經(jīng)常會使用setValue forKey與setObject forKey,他們經(jīng)常是可以交互使用的,代碼中經(jīng)常每一種的使用都有。 1,先看看setValue: forKey:的定義 @interface NSMutableDictionary(NSKeyValueCoding) /* Send -setObject:forKey: to the receiver, unless the value is nil, in which case send -removeObject:forKey:. */ - (void)setValue:(id)value forKey:(NSString *)key; @end 擴展NSMutableDictionary的一個類別,上面注釋說的很清楚,發(fā)送setObject:forKey 給接收者,也就是調(diào)用setObject:forKey方法 除非value為nil的時候,調(diào)用方法removeObject:forKey 2,看看setObject:forKey:的定義 @interface NSMutableDictionary :NSDictionary - (void)removeObjectForKey:(id)aKey; - (void)setObject:(id)anObject forKey:(id <NSCopying>)aKey; @end 注意:setObject:forKey:中Key的對象是一個id類型,并不是NSString,只不過我們經(jīng)常使用NSString而已。 現(xiàn)在總結(jié)他們2者的區(qū)別就是: 1, setObject:forkey:中value是不能夠為nil的,不然會報錯。 setValue:forKey:中value能夠為nil,但是當(dāng)value為nil的時候,會自動調(diào)用removeObject:forKey方法 2, setValue:forKey:中key的參數(shù)只能夠是NSString類型,而setObject:forKey:的可以是任何類型 注意:setObject:forKey:對象不能存放nil要與下面的這種情況區(qū)分: 1, [imageDictionarysetObject:[NSNullnull] forKey:indexNumber]; [NSNull null]表示的是一個空對象,并不是nil,注意這點 2, setObject:forKey:中Key是NSNumber對象的時候,如下: [imageDictionarysetObject:obj forKey:[NSNumber numberWithInt:10]]; 注意: 上面說的區(qū)別是針對調(diào)用者是dictionary而言的。 setObject:forKey:方法NSMutabledictionary特有的,而 setValue:forKey:方法是KVC(鍵-值編碼)的主要方法。 當(dāng) setValue:forKey:方法調(diào)用者是對象的時候: setValue:forKey:方法是在NSObject對象中創(chuàng)建的,也就是說所有的oc對象都有這個方法,所以可以用于任何類。 比如使用: SomeClass *someObj = [[SomeClass alloc] init]; [someO......
回答(1).NSArray and its subclass NSMutableArray manage ordered collections of objects called arrays. NSArray creates static arrays, and NSMutableArray creates dynamic arrays. You can use arrays when you need an ordered collection of objects. NSArray 用于保存對象的有序集合,但只能保存 OC 對象(繼承自 NSObject 的 interface)。由于 Objective-C++ 是動態(tài)定型(dynamically typed),繼承自NSObject 的 interface type cannot be statically allocated。因此 NSArray 本質(zhì)上保存的是id,即 NSObject* 泛型指針。最新版 SDK 頭文件已將數(shù)組元素聲明為支持 <ObjectType> 協(xié)議的類型,數(shù)組作為參數(shù)則聲明為 NSArray<ObjectType>。 Cocoa 的 NSArray 是基于 C 底層 CFArray/CFArrayRef 實現(xiàn)的,NSArray 可以看做是一個 CFArrayRef 的 Wrapper類。 __NSArrayI(Immutable)是NSArray的真正類型(_internal),__NSArrayM(Mutable)是NSMutableArray的真正類型(_internal)。 [objc] view plain copy print? @interface NSArray<__covariant ObjectType> : NSObject <NSCopying, NSMutableCopying, NSSecureCoding, NSFastEnumeration> @interface NSMutableArray<ObjectType> : NSArray<ObjectType> C 原生數(shù)據(jù)類型(Native Data Type: int,char,double,etc)不能直接作為 NSArray 元素,它們必須通過裝箱(boxing)成 NSNumber、NSString 或 NSValue 等 OC 對象才能納入 OC 數(shù)組存儲。 在蘋果 WWDC2012 大會上介紹了大量 Objective-C 的新特性,其中有一點就是Objective-C Literals(參考1、2、3),它允許你在XCode 4.4/LLVM Compiler 4.0/iOS 6及以上平臺方便地基于字面量定義數(shù)字、數(shù)組和字典常量對象。 [plain] view plain copy print? Three new features were introduced into clang at the same time: - NSNumber Literals provide a syntax for creating NSNumber from scalar literal expressions; - Collection Literals provide a short-hand for creating arrays and diction......
回答(2).if(precision == null)/// 整型怎么能和Null比較呢。 if((width != null)&&(sb.length()<width)) //同上
回答(3).你這樣操作下吧。設(shè)置下“rules“里的“clearence”就可以了。 ”design“--“rules“--”electrical“--“clearence”,右鍵“clearence”,”new rules“,并修改為”polygon“,將”minimum clearence“修改為30mil(這個就是銅皮和走線的間距)。在”where the first object matches“中選擇”advanced(Query)“,在”full query“中輸入”InPolygon“。 點擊”properties“按鈕,進入后,將”polygon“的優(yōu)先級調(diào)高于”all“的優(yōu)先級。 OK即可完成設(shè)置,這樣你敷銅時則遵循”polygon“規(guī)則。布線的時候遵循“all”規(guī)則。
回答(4).原理圖上:PN ,放置網(wǎng)絡(luò)標(biāo)號;PP,放置元器件;PW,放置導(dǎo)線;Page UP ,Page Down,分別為放大,放;ED,刪除器件或?qū)Ь;Ctrl + F ,查找器件 ;這些是最常用的快捷鍵都是以菜單上的首字母(如放置為Place)+下拉菜單中的選項(比如Net網(wǎng)絡(luò)標(biāo)號)=PN
回答(5).p.source = [[p.source componentsSeparatedByString:@"rel=\"nofollow\">"] lastObject]; p.source = [[p.source componentsSeparatedByString:@"</a>"] firstObject]; cell.sourceLabel.text = p.source; 不知道你說的是不是指這個 用字符串拆分 得到你想要的 就行了
回答(6).在規(guī)則中新建一個規(guī)則(右擊Clearance--New Rule)Where The First Object Matches中,選中Net--右邊下拉選項中選擇你要設(shè)置的電氣類型--Constraints中修改間距。
![]() |
|||