125月

xcode 4.5 new feature

最近的两周我注意到了WWDC。 2012 developer session 400 - 412的图像,下面总结的新特点。(嫁妆商议)onevcat的文字,谢谢你。。)

@synthesize by 未履行任务或责任(属性亲手参战绑定)在到底,当咱们想为类添加新属性时,咱们通常调解对应的状况变量和有重大意义的的分解词。,但在XCODE中 4.4继后,分解现时将有重大意义的地出示它本身的属性。。默许行动下,属性FO,当开发人员不写有重大意义的的分解时,汇编者将有效的为开发人员调解分解。,就像你写的分解。
foo = _foo。

总结一下,新的属性绑定章程,如:

● 除非开发人员在创造补充纸张中补充吸气剂或SETER。,若非,你将发生你本身的有效的权。

除非开发者应用程式同时补充吸气剂和挡板。,若非,你将发生你本身的有效的权。状况变量

  只写分解。,不尊重有无状况变量名。,将出示状况变量。

     
     ●
  免得开发者应用程式写@分解 foo;因而状况变量名是FO。

  静力学优先等级高于分解

           ● 为创造写@静力学,懂得有重大意义的的分解将是残废者的。

Literals(缩写)

在到底

NSNumber

整个的[NSNumber numberWith…办法可以促进。:

●  [NSNumber Char:x是缩写为 @‘X’;

  [NSNumber numberWithInt:12345] 缩写为 @12345

  [NSNumber numberWithUnsignedLong:12345ul] 缩写为 @12345ul

[NSNumber numberWithLongLong:12345ll] 缩写为 @12345ll

  [NSNumber numberWithFloat:] 缩写为 @

  [NSNumber numberWithDouble:] 缩写为 @

  [NSNumber numberWithBool:YES] 缩写为 @YES

NSDictionary

  [NSDictionary 词典 缩写为 @{}

  [NSDictionary dictionaryWithObject:o1forKey:k1] 缩写为 @{ k1 : o1 }

  [NSDictionarydictionaryWithObjectsAndKeys:o1, k1, o2, k2, o3, k3, 尼尔 缩写为 @{ k1 : o1, k2 : o2, k3 : o3 }

贬低到达 k1 : o1, k2 : o2, k3 : o3 }时,现实密码将是

// compiler generates:

id objects[] = { o1, o2, o3 };

id keys[] = { k1, k2, k3 };

NSUInteger count = sizeof(objects) / sizeof(id);

dict = [NSDictionary dictionaryWithObjects:objects forKeys:keyscount:count];

NSArray

相当NSART办法被促进。:

[NSArray 排列 缩写为 @[]

  [NSArray arrayWithObject:a] 缩写为 @[ a ]

  [NSArray arrayWithObjects:a, b, c, 尼尔 缩写为 @[ a, b, c ]

比如为@[ a, b, c ],现实波湾阴谋时密码为

// compiler generates:

id objects[] = { a, b, c };

NSUInteger count = sizeof(objects)/ sizeof(id);

array = [NSArray arrayWithObjects:objectscount:count];

变量版本号和静力学版本号
下面的版本号是不变量的。,免得您为特定用途而打算每一变量版本号,,它可以发送MutabelCopress音讯来出示变量正本。。比如

NSMutableArray *mutablePlanets = [@[ 
@”Mercury”, @”Venus”, 
@”Earth”, @”Mars”, 
@”Jupiter”, @”Saturn”, 
@”Uranus”, @”Neptune” ] 
mutableCopy];


别的,标识表记标帜为静力学排列,不克不及应用缩写为其工作(其实先头的国际公约文气也不可)。

准许直率的工作会提示符逆。

@implementation MyClass

static NSArray *  thePlanets = @[                                            error:array literals not constant

  @”Mercury”, @”Venus”, @”Earth”,

  @”Mars”, @”Jupiter”, @”Saturn”,

  @”Uranus”, @”Neptune”

];


解决办法是类办法。 将静力学分配给供应(空)设定初值。

@implementation MyClass

static NSArray *thePlanets; 

+ (空)设定初值

    if (本人) == [MyClass 类 { 

        thePlanets = @[ @”Mercury”, @”Venus”, @”Earth”, @”Mars”, @”Jupiter”, @”Saturn”, @”Uranus”, @”Neptune” ]; 

    } 

}


下标

Array

    Song *oldSong = [_songs objectAtIndex:idx];

    [_songs replaceObjectAtIndex:idx withObject:newSong];

能缩写为

    Song *oldSong = 歌曲[ IDX ]

    歌曲[ IDX ] = 纽松


Dictionary

    id oldObject = [_storage objectForKey:key];

    [_storage setObject:newobject forKey:key];

能缩写为

    id oldObject = 存储器[关键的]

    存储器[关键的] = newObject;

您不但可以应用它补充的下标号召。。您还可以应用下标号召您使明确的类。。

为咱们本身使明确的类,您只必要创造应用下标号召的办法。。

Array

– (elementType)objectAtIndexedSubscript:(indexType)idx; 

– (void)setObject:(elementType)object atIndexedSubscript:(indexType)idx;

Dictionary

– (elementType)objectForKeyedSubscript:(keyType)key; 

– (void)setObject:(elementType)object (进去)键


Segues

xcode 4.5的一块地板补充了一种更手巧的的SeGEU办法。。

当您想经过在小牢房中按箭头记号来创造SeGEU时,。在过来,密码不可废止的用来创造。。补充了直率的连接到一块地板的办法。



Unwind Segues

解开 segues,你可以停止划桨地创造SeGEU,你可以注意到每一看。。



您必要在辅助的设置中创造以下两种办法:。

-(BOOL)canPerformUnwindSegueAction:(SEL)action fromViewController:(UIViewController *)fromViewController 发送者:(ID)发送者

{

    return YES;

}

(默许为是)

– (IBAction)done:(UIStoryboardSegue *)segue

{

    // React to the impending segue

    // Pull state back, etc.

}

CollectionView

下面的图片是珍藏。 经过看创造的相片墙显示。


肖像奔流趋势的显示办法。

为什么要应用集中? 角度呢?

能显示崇高的专用化的满足的。

行政机关录音的最适度执行

■ 甚至处置少量的录音。,也很的高效

为CollectionView次要要创造的办法有三个

UICollectionViewDataSource

section的音量 

-numberOfSectionsInCollection:

某个section里有等于个item 

-collectionView:numberOfItemsInSection:

为某个使获得座位必然要显示多少的cell 

-collectionView:cellForItemAtIndexPath:

embed segue

在稍前的的xcode中,准许咱们为特定用途而打算联结每一子看,咱们麝香用密码创造。


UIViewController *child =

  [[self storyboard] instantiateViewControllerWithIdentifier:@”ContentScene”];

[self addChildViewController:child];

[[self view] addSubview:[child view]];

[[child view] setFrame:frame];


目前在storyboard多了container view很装饰品,能让你不必密码创造联结每一子看。




你能在

– (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender

中创造參数的传染。

办法按次

准许有下面密码:

@interface SongPlayer : NSObject 
– (void)playSong:(Song *)song; 
@end 

@implementation SongPlayer 
– (void)playSong:(Song *)song { 
NSError *error; 
[self startAudio:&error]; 
… 

– (void)startAudio:(NSError **)error { … } 
@end

在早相当的波湾阴谋一带中,下面的密码会在[self startAudio:&error]处涌现每一状况办法未找到的正告。由于波湾阴谋按次,汇编者无法泄露在-playSong:办法继后另每一-startAudio:,乃支付正告。

在新汇编者里,准许在同卵的创造补充纸张里,不尊重办法写在哪里,汇编者都能在对办法创造停止波湾阴谋前赚得整个办法的解释,到这程度废止了正告。

细目改良

从開始,有能力更强的的细目的文气了:

typedef enum NSNumberFormatterStyle : NSUInteger {

    NSNumberFormatterNoStyle, 

    NSNumberFormatterDecimalStyle, 

    NSNumberFormatterCurrencyStyle, 

    NSNumberFormatterPercentStyle, 

    NSNumberFormatterScientificStyle, 

    NSNumberFormatterSpellOutStyle 

} NSNumberFormatterStyle;

发表评论

电子邮件地址不会被公开。 必填项已用*标注