锘??xml version="1.0" encoding="utf-8" standalone="yes"?>97久久久久人妻精品专区,亚洲精品乱码久久久久66,久久综合久久性久99毛片http://www.shnenglu.com/iuranus/category/15682.html<br><font color="#ADFF2F">Something Different錛孲omething New</font>zh-cnMon, 02 Feb 2015 20:15:54 GMTMon, 02 Feb 2015 20:15:54 GMT60OBJECTIVE C summaryhttp://www.shnenglu.com/iuranus/archive/2015/02/02/209702.html鏀鍗?/dc:creator>鏀鍗?/author>Sun, 01 Feb 2015 18:18:00 GMThttp://www.shnenglu.com/iuranus/archive/2015/02/02/209702.htmlhttp://www.shnenglu.com/iuranus/comments/209702.htmlhttp://www.shnenglu.com/iuranus/archive/2015/02/02/209702.html#Feedback0http://www.shnenglu.com/iuranus/comments/commentRss/209702.htmlhttp://www.shnenglu.com/iuranus/services/trackbacks/209702.html
- Primitive
Basic C primitive type are available in objective C
char/bool/int/long int/float/double/
BOOL defines yes/true/1 and no/false/0
 
- Additional Class
NSInteger, NSUInteger, NSFloat, NSNumber
for 64bit and 32bit CPU, the size of long, int may different, objective has additional class for these problem

-Special
id: id is a pointer which points to a object derived from NSObject.îî
nil: nil == NULL in c. nil means a NSObject point to a null object/ nothing
Nil: null class
SEL: is type from selector, define a method name. 
NSString(@), BOOL (yes, no)

[OOP]
@interface: define the class, method declaration 
@implementation: detail the interface

uppercast/downcast

[Memery]
Stack
Heap
@import url(http://www.shnenglu.com/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);

]]>
iPad, PC, Mac Connect to a mac ox lion http://www.shnenglu.com/iuranus/archive/2011/11/10/159912.html鏀鍗?/dc:creator>鏀鍗?/author>Thu, 10 Nov 2011 06:22:00 GMThttp://www.shnenglu.com/iuranus/archive/2011/11/10/159912.htmlhttp://www.shnenglu.com/iuranus/comments/159912.htmlhttp://www.shnenglu.com/iuranus/archive/2011/11/10/159912.html#Feedback0http://www.shnenglu.com/iuranus/comments/commentRss/159912.htmlhttp://www.shnenglu.com/iuranus/services/trackbacks/159912.htmlWhich indicates that osx lion supports multip-user login in, meanwhile, it allocates specific session and space for individual user.


]]>
鏈虹粡http://www.shnenglu.com/iuranus/archive/2011/11/08/159841.html鏀鍗?/dc:creator>鏀鍗?/author>Tue, 08 Nov 2011 15:11:00 GMThttp://www.shnenglu.com/iuranus/archive/2011/11/08/159841.htmlhttp://www.shnenglu.com/iuranus/comments/159841.htmlhttp://www.shnenglu.com/iuranus/archive/2011/11/08/159841.html#Feedback1http://www.shnenglu.com/iuranus/comments/commentRss/159841.htmlhttp://www.shnenglu.com/iuranus/services/trackbacks/159841.html/Files/iuranus/test.pdf

]]>
UIView, UITouch, UIEvent 鍏崇郴http://www.shnenglu.com/iuranus/archive/2011/04/13/144109.html鏀鍗?/dc:creator>鏀鍗?/author>Wed, 13 Apr 2011 03:54:00 GMThttp://www.shnenglu.com/iuranus/archive/2011/04/13/144109.htmlhttp://www.shnenglu.com/iuranus/comments/144109.htmlhttp://www.shnenglu.com/iuranus/archive/2011/04/13/144109.html#Feedback0http://www.shnenglu.com/iuranus/comments/commentRss/144109.htmlhttp://www.shnenglu.com/iuranus/services/trackbacks/144109.html 

]]>
mac 涓婄湅緗戠粶鏁版嵁http://www.shnenglu.com/iuranus/archive/2011/03/29/142954.html鏀鍗?/dc:creator>鏀鍗?/author>Tue, 29 Mar 2011 08:59:00 GMThttp://www.shnenglu.com/iuranus/archive/2011/03/29/142954.htmlhttp://www.shnenglu.com/iuranus/comments/142954.htmlhttp://www.shnenglu.com/iuranus/archive/2011/03/29/142954.html#Feedback0http://www.shnenglu.com/iuranus/comments/commentRss/142954.htmlhttp://www.shnenglu.com/iuranus/services/trackbacks/142954.html

http://sourceforge.net/projects/packetpeeper/


]]>
[webView loadHTMLString: baseURL:鏂規(guī)硶浣跨敤闂http://www.shnenglu.com/iuranus/archive/2011/03/22/142509.html鏀鍗?/dc:creator>鏀鍗?/author>Tue, 22 Mar 2011 12:02:00 GMThttp://www.shnenglu.com/iuranus/archive/2011/03/22/142509.htmlhttp://www.shnenglu.com/iuranus/comments/142509.htmlhttp://www.shnenglu.com/iuranus/archive/2011/03/22/142509.html#Feedback0http://www.shnenglu.com/iuranus/comments/commentRss/142509.htmlhttp://www.shnenglu.com/iuranus/services/trackbacks/142509.html瑙f瀽鏌愮綉欏礖TML寰楀埌浜嗘綃囨枃绔犵殑鏍囬鍜屾鏂囧唴瀹癸紝騫剁敤loadHTMLString:baseURL:鏂規(guī)硶鍦?span class=t_tag style="CURSOR: pointer; LINE-HEIGHT: normal; BORDER-BOTTOM: rgb(255,0,0) 1px solid; WHITE-SPACE: nowrap; WORD-WRAP: break-word" onclick=tagshow(event) href="tag.php?name=UIWebView">UIWebView涓樉紺哄嚭鏉ワ紝浣嗘病鏈変換浣曟牱寮忋?br style="LINE-HEIGHT: normal; WORD-WRAP: break-word">鎶奀SS涔熷姞鍒板伐紼嬮噷闈紝鐒跺悗
  1. [webView loadHTMLString:html baseURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] resourcePath]]];
澶嶅埗浠g爜
榪欐牱baseURL灝辨寚鍚戜簡紼嬪簭鐨勮祫婧愯礬寰勶紝榪欐牱Html浠g爜灝卞拰css鏄竴涓礬寰勭殑銆傚綋鐒禸aseURL涔熷彲浠ュ啓涓涓綉緇滆礬寰勶紝榪欐牱灝卞彲浠ョ敤緗戠粶涓婄殑CSS浜嗐?br style="LINE-HEIGHT: normal; WORD-WRAP: break-word">
Javascript涔熸槸涓鏍風殑閬撶悊錛屼絾鏄娉ㄦ剰錛?js鏂囦歡榛樿浼氳褰撲綔浠g爜錛屾墍浠ユ妸js鏂囦歡鍔犲叆宸ョ▼鍚庯紝闇瑕佸埌XCode宸︽爮鐨勮祫婧愭爲錛屾壘鍒癟argerts->(浣犵殑紼嬪簭鍚嶅瓧)->Compile Sources閭i噷錛屾壘鍒版柊鍔犲叆鐨刯s鏂囦歡錛屾妸瀹冧滑鎷栧埌Targerts->(浣犵殑紼嬪簭鍚嶅瓧)->Copy Bundle Resources閲岄潰鍘伙紝灝卞彲浠ヤ簡銆?br style="LINE-HEIGHT: normal; WORD-WRAP: break-word">
鍔犲叆鏂囦歡鍒伴」鐩殑鏃跺欐湁涓や釜閫夐」錛屼竴涓彨鍋?#8220;Recursively create groups for any added folders”涓涓彨鍋?#8220;Create Folder References for any added folders”銆傛垜浠竴鑸敤鍓嶈咃紝榪欐牱鎵鏈夊姞榪涙潵鐨勬枃浠墮兘鍦ㄨ祫婧愮洰褰曠殑鏍圭洰褰曘傚鏋滀綘闇瑕佷綘鐨凧S鎴栬匔SS鏈夌洰褰曠粨鏋勶紝涓嶈窡HTML鍦ㄤ竴璧鳳紝鑰屾槸鏈夌浉瀵硅礬寰勫叧緋葷殑璇濓紝浣犲彲浠ョ敤絎簩涓夐」錛屽姞鍏ヤ竴涓洰褰曡繘鏉ワ紝鐩綍閲岄潰鐨勬枃浠惰繘鍏ヨ祫婧愮殑鏃跺欎細淇濇寔鐩稿璺緞鍏崇郴銆?/span>



]]>
xCode 4.0 issue listhttp://www.shnenglu.com/iuranus/archive/2011/03/22/142508.html鏀鍗?/dc:creator>鏀鍗?/author>Tue, 22 Mar 2011 11:57:00 GMThttp://www.shnenglu.com/iuranus/archive/2011/03/22/142508.htmlhttp://www.shnenglu.com/iuranus/comments/142508.htmlhttp://www.shnenglu.com/iuranus/archive/2011/03/22/142508.html#Feedback0http://www.shnenglu.com/iuranus/comments/commentRss/142508.htmlhttp://www.shnenglu.com/iuranus/services/trackbacks/142508.html1. iOS 4.3 documentation can not found in xCode 4.0, please going into XCode | Preferences, under the Documentation tab, get iOS4.3 Library(458M)

]]>
iOS涔︾睄闅忕瑪http://www.shnenglu.com/iuranus/archive/2011/03/10/141492.html鏀鍗?/dc:creator>鏀鍗?/author>Thu, 10 Mar 2011 04:53:00 GMThttp://www.shnenglu.com/iuranus/archive/2011/03/10/141492.htmlhttp://www.shnenglu.com/iuranus/comments/141492.htmlhttp://www.shnenglu.com/iuranus/archive/2011/03/10/141492.html#Feedback0http://www.shnenglu.com/iuranus/comments/commentRss/141492.htmlhttp://www.shnenglu.com/iuranus/services/trackbacks/141492.html   鍏充簬娣辨祬鎷瘋礉璁茬殑閫忓交
- Programming.in.Objective-C.2.0.2nd(Addison.Wesley.2009)
   褰掓。錛孨SCopying錛孨SCoding



]]>
iOS鍐欐枃浠惰ˉ鍏?/title><link>http://www.shnenglu.com/iuranus/archive/2011/03/09/141442.html</link><dc:creator>鏀鍗?/dc:creator><author>鏀鍗?/author><pubDate>Wed, 09 Mar 2011 09:51:00 GMT</pubDate><guid>http://www.shnenglu.com/iuranus/archive/2011/03/09/141442.html</guid><wfw:comment>http://www.shnenglu.com/iuranus/comments/141442.html</wfw:comment><comments>http://www.shnenglu.com/iuranus/archive/2011/03/09/141442.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/iuranus/comments/commentRss/141442.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/iuranus/services/trackbacks/141442.html</trackback:ping><description><![CDATA[<span> <p>涓 緋葷粺鍐呯疆瀵硅薄璇誨啓鑷蟲枃浠?span><br><br>- If your objects are of type NSString,NSDictionary,NSArray,NSDate,NSData, or NSNumber, you can use the writeToFile:atomically: method implemented in these classes to write your data to a file. In the case of writing out a dictionary or an array, this method writes the data to the file in the format of an XML property list. Program 19.1 shows how the dictionary you created as a simple glossary in Chapter 15,“Numbers, Strings, and Collections,” can be written to a file as a property list.</span></p> <p> <span>Program 19.1</span></p> <p><span>#import <Foundation/NSObject.h></span></p> <p><span>#import <Foundation/NSString.h></span></p> <p><span>#import <Foundation/NSDictionary.h></span></p> <p><span>#import <Foundation/NSAutoreleasePool.h></span></p> <p><span>int main (int argc, char *argv[])</span></p> <p><span> <p><span>int main (int argc, char *argv[])</span></p> <p align=left><span><span>   </span>{</span></p> <p align=left><span><span>                </span>NSAutoreleasePool<span>            </span>* pool = [[NSAutoreleasePool alloc] init];</span></p> <p align=left><span><span>                </span>NSDictionary<span>       </span>*glossary =</span></p> <p align=left><span><span>                </span>[NSDictionary<span>        </span>dictionaryWithObjectsAndKeys:</span></p> <p align=left><span><span>          </span><span>          </span>@”A class defined so other classes can inherit from it.”, @”abstract class”,</span></p> <p align=left><span><span>                    </span>@”To implement all the methods defined in a protocol”, @”adopt”,</span></p> <p align=left><span><span>                    </span>@”Storing an object for later use. “,<span>  </span>@”archiving”,</span></p> <p align=left><span><span>        </span><span>            </span>nil</span></p> <p align=left><span><span>                </span>];</span></p> <p align=left><span><span>                </span>if ([glossary writeToFile: @”glossary”<span>                  </span>atomically: YES] == NO)</span></p> <p align=left><span><span>                    </span>NSLog (@”Save to file failed!”);</span></p> <p align=left><span><span>                </span>[pool drain];</span></p> <p align=left><span><span>                </span>return 0;</span></p> <p align=left><span><span>          </span> }</span></p> <p align=left><span><br></span></p> <p align=left><span>- </span><font face="Calibri, sans-serif"><span>To read an XML property list from a file into your program, you use the </span></font><span>dictionaryWithContentsOfFile: or arrayWithContentsOfFile: methods.To read </span><font face="Calibri, sans-serif"><span>back data, use the dataWithContentsOfFile: method; to read back string objects, use </span></font><span>the stringWithContentsOfFile:method. Program 19.2 reads back the glossary written </span><span>in Program 19.1 and then displays its contents.  </span></p> <p align=left> <p align=left><font face="Calibri, sans-serif"><span><br></span></font></p> <p align=left><font face="Calibri, sans-serif"><span>#import <Foundation/NSObject.h> </span></font></p> <p align=left><font face="Calibri, sans-serif"><span>#import <Foundation/NSString.h> </span></font></p> <p align=left><font face="Calibri, sans-serif"><span>#import <Foundation/NSDictionary.h> </span></font></p> <p align=left><font face="Calibri, sans-serif"><span>#import <Foundation/NSEnumerator.h> </span></font></p> <p align=left><font face="Calibri, sans-serif"><span>#import <Foundation/NSAutoreleasePool.h> </span></font></p> <p align=left><font face="Calibri, sans-serif"><span><br></span></font></p> <p align=left><font face="Calibri, sans-serif"><span>int main (int argc, char *argv[]) </span></font></p> <p align=left><font face="Calibri, sans-serif"><span>{ </span></font></p> <p align=left><font face="Calibri, sans-serif"><span>    NSAutoreleasePool  * pool = [[NSAutoreleasePool alloc] init]; </span></font></p> <p align=left><font face="Calibri, sans-serif"><span>    NSDictionary *glossary; </span></font></p> <p align=left><font face="Calibri, sans-serif"><span><br></span></font></p> <p align=left><font face="Calibri, sans-serif"><span>    glossary = [NSDictionary dictionaryWithContentsOfFile: @”glossary”]; </span></font></p> <p align=left><font face="Calibri, sans-serif"><span><br></span></font></p> <p align=left><font face="Calibri, sans-serif"><span>    for ( NSString *key in glossary ) </span></font></p> <p align=left><font face="Calibri, sans-serif"><span>        NSLog (@”%@: %@”,          key, [glossary objectForKey: key]); </span></font></p> <p align=left><font face="Calibri, sans-serif"><span><br></span></font></p> <p align=left><font face="Calibri, sans-serif"><span>     [pool drain]; </span></font></p> <p align=left><font face="Calibri, sans-serif"><span>    return 0; </span></font></p> <p align=left><font face="Calibri, sans-serif"><span>} </span></font></p> <p> 浜?鑷畾涔夊璞¤鍐欒嚦鏂囦歡<span><br></span></p> </span> <p> -   <span>A more flexible approach enables you to save any type of objects to a file, not just strings, </span><span>arrays, and dictionaries.This is done by creating a keyed archive using the </span><span>NSKeyedArchiver class.<br>This implies that you can’t directly archive your AddressBook using this technique because the Objective-C system doesn’t know how to archive an AddressBook object. If you tried to archive it by inserting a line such as NSKeyedArchiver archiveRootObject: myAddressBook toFile: @”addrbook.arch”]; into your program, you’d get the following message displayed if you ran the program:<br><br>*** -[AddressBook encodeWithCoder:]: selector not recognized<br>*** Uncaught exception: <NSInvalidArgumentException><br>*** -[AddressBook encodeWithCoder:]: selector not recognized<br>archiveTest: received signal: Trace/BPT trap<br>To archive objects other than those listed, you must tell the system how to archive, or encode, your objects, and also how to unarchive, or decode, them.This is done by adding encodeWithCoder: and initWithCoder: methods to your class definitions, according to the <NSCoding> protocol. For our address book example, you’d have to add these methods to both the AddressBook and AddressCard classes.<br><br>The encodeWithCoder: method is invoked each time the archiver wants to encode an object from the specified class, and the method tells it how to do so. In a similar manner, the initWithCoder: method is invoked each time an object from the specified class is to be decoded.<br><br>Program 19.5 Addresscard.h Interface File<br>#import <Foundation/NSObject.h><br>#import <Foundation/NSString.h><br>#import <Foundation/NSKeyedArchiver.h><br>@interface AddressCard: NSObject <NSCoding, NSCopying><br>{<br>NSString  *name;<br>NSString  *email;<br>}<br>@property (copy, nonatomic) NSString *name, *email;<br>-(void) setName: (NSString *) theName andEmail: (NSString *) theEmail;<br>-(NSComparisonResult) compareNames: (id) element;<br>-(void) print;<br>// Additional methods for NSCopying protocol<br>-(AddressCard *) copyWithZone: (NSZone *) zone;<br>-(void) retainName: (NSString *) theName andEmail: (NSString *) theEmail;</span></p> @end<br><br>-(void) encodeWithCoder: (NSCoder *) encoder<br>{<br>[encoder encodeObject: name forKey: @”AddressCardName”];<br>[encoder encodeObject: email forKey: @”AddressCardEmail”];<br>}<br>-(id) initWithCoder: (NSCoder *) decoder<br>{<br>name = [[decoder decodeObjectforKey: @”AddressCardName”] retain];<br>email = [[decoder decodeObjectforKey: @”AddressCardEmail”] retain];<br>return self;<br>}<br><br>#import “AddressBook.h”<br>#import <Foundation/NSAu orelea ePool.h><br>int main (int argc, char *argv[])<br>{<br> NSString  *aName = @”Julia Kochan”;<br>NSString  *aEmail = @”jewls337@axlc.com”;<br>NSString  *bName = @”Tony Iannino”;<br>NSString  *bEmail = @”tony.iannino@techfitness.com”;<br>NSString  *cName = @”Stephen Kochan”;<br>NSString  *cEmail = @”steve@steve_kochan.com”;<br>NSString  *dName = @”Jamie Baker”;<br>NSString  *dEmail = @”jbaker@hitmail.com”;<br>NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];<br>AddressCard *card1 = [[AddressCard alloc] init];<br>AddressCard *card2 = [[AddressCard alloc] init];<br>AddressCard *card3 = [[AddressCard alloc] init];<br>AddressCard *card4 = [[AddressCard alloc] init];<br>AddressBook  *myBook = [AddressBook alloc];<br>// First set up four address cards<br>[card1 setName: aName andEmail: aEmail];<br>[card2 setName: bName andEmail: bEmail];<br>[card3 setName: cName andEmail: cEmail];<br>[card4 setName: dName andEmail: dEmail];<br>myBook = [myBook initWithName: @”Steve’s Address Book”];<br>// Add some cards to the address book<br>[myBook addCard: card1];<br>[myBook addCard: card2];<br>[myBook addCard: card3];<br>[myBook addCard: card4];<br>[myBook sort];<br>if ([NSKeyedArchiver archiveRootObject: myBook toFile: @”addrbook.arch”] == NO)<br>NSLog (@”archiving failed”);<br>[card1 release];<br>[card2 release];<br>[card3 release];<br>[card4 release];<br>[myBook release];<br>[pool drain];<br>return 0;<br>}</span> <br><br>Program 19.7 shows how you can read the archive into memory to set up the address<br>book from a file.<br>Program 19.7<br>#import “AddressBook.h”<br>#import <Foundation/NSAutoreleasePool.h><br>int main (int argc, char *argv[])<br>{<br>AddressBook         *myBook;<br>NSAutoreleasePool   * pool = [[NSAutoreleasePool alloc] init];<br>myBook = [NSKeyedUnarchiver unarchiveObjectWithFile: @”addrbook.arch”];<br>[myBook list];<br>[pool drain];<br>return 0;<br>} <br><br>涓?浣跨敤NSData璇誨啓鏂囦歡<br><br>- You might not want to write your object directly to a file using the archiveRootObject:ToFile: method, as was done in the previous program examples.For example, perhaps you want to collect some or all of your objects and store them in a single archive file.You can do this in Objective-C using the general data stream object class called NSData. <br><br>int main (int argc, char *argv[])<br>{<br>NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];<br>Foo               *myFoo1 = [[Foo alloc] init];<br>Foo               *myFoo2;<br>NSMutableData     *dataArea;<br>NSKeyedArchiver   *archiver;<br>AddressBook       *myBook;<br>// Insert code from Program 19.7 to create an Address Book<br>// in myBook containing four address cards<br>[myFoo1 setStrVal: @”This is the string”];<br>[myFoo1 setIntVal: 12345];<br>[myFoo1 setFloatVal: 98.6];<br>// Set up a data area and connect it to an NSKeyedArchiver object<br>dataArea = [NSMutableData data];<br>archiver = [[NSKeyedArchiver alloc]<br>initForWritingWithMutableData: dataArea];<br>// Now we can begin to archive objects<br>[archiver encodeObject: myBook forKey: @”myaddrbook”];<br>[archiver encodeObject: myFoo1 forKey: @”myfoo1”];<br>[archiver finishEncoding];<br>// Write the archived data are to a file<br>if ( [dataArea writeToFile: @”myArchive” atomically: YES] == NO)<br>NSLog (@”Archiving failed!”);<br>[archiver release];<br>[myFoo1 release];<br>[pool drain];<br>return 0;<br>}<br><br>- Restoring the data from your archive file is simple:You just do things in reverse. First, you need to allocate a data area like before.Next, you need to read your archive file into the data area; then you have to create an SKeyedUnarchiver object and tell it to decode data from the specified area.You must invoke decode methods to extract and decode your archived objects.When you’re finished, you send a finishDecoding message to the NSKeyedUnarchiver object.<br><br>#import <Foundation/NSObject.h><br>#import <Foundation/NSAutoreleasePool.h><br>#import <Foundation/NSString.h><br>#import <Foundation/NSKeyedArchiver.h><br>#import <Foundation/NSCoder.h><br>#import <Foundation/NSData.h><br>#import “AddressBook.h”<br>#import “Foo.h”<br>int main (int argc, char *argv[])<br>{<br>NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];<br>NSData            *dataArea;<br>NSKeyedUnarchiver *unarchiver;<br>Foo               *myFoo1;<br>AddressBook       *myBook;<br>// Read in the archive and connect an<br>// NSKeyedUnarchiver object to it<br>dataArea = [NSData dataWithContentsOfFile: @”myArchive”];<br>if (! dataArea) {<br>NSLog (@“Can’t read back archive file!”);<br>Return (1);<br>}<br>unarchiver = [[NSKeyedUnarchiver alloc]<br>initForReadingWithData: dataArea];<br>// Decode the objects we previously stored in the archive<br>myBook = [unarchiver decodeObjectForKey: @”myaddrbook”];<br>myFoo1 = [unarchiver decodeObjectForKey: @”myfoo1”];<br>[unarchiver finishDecoding];<br>[unarchiver release];<br>// Verify that the restore was successful<br>[myBook list];<br>NSLog (<a>“%@\n%i\n%g</a>”, [myFoo1 strVal],<br>[myFoo1 intVal], [myFoo1 floatVal]);<br>[pool release];<br>return 0;<br>}<br><br>鍙傝冿細Programming.in.Objective-C.2.0.2nd(Addison.Wesley.2009)<br>瀹? <img src ="http://www.shnenglu.com/iuranus/aggbug/141442.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/iuranus/" target="_blank">鏀鍗?/a> 2011-03-09 17:51 <a href="http://www.shnenglu.com/iuranus/archive/2011/03/09/141442.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>iOS 4鍚庡彴澶氫換鍔?/title><link>http://www.shnenglu.com/iuranus/archive/2011/01/06/138063.html</link><dc:creator>鏀鍗?/dc:creator><author>鏀鍗?/author><pubDate>Thu, 06 Jan 2011 03:58:00 GMT</pubDate><guid>http://www.shnenglu.com/iuranus/archive/2011/01/06/138063.html</guid><wfw:comment>http://www.shnenglu.com/iuranus/comments/138063.html</wfw:comment><comments>http://www.shnenglu.com/iuranus/archive/2011/01/06/138063.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/iuranus/comments/commentRss/138063.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/iuranus/services/trackbacks/138063.html</trackback:ping><description><![CDATA[ <p class="MsoNormal"><span style="font-family:瀹嬩綋">浠婂ぉ璋冩煡浜嗕笅</span><span lang="EN-US">IOS 4.0 </span><span style="font-family:瀹嬩綋">鏀寔鐨勫浠誨姟鐨勪簨瀹滐紝緋葷粺鏄?/span><span lang="EN-US">4.2</span><span style="font-family:瀹嬩綋">錛?/span> <span style="font-family:瀹嬩綋">鍒濇緇撴灉濡備笅錛?/span></p> <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal"><span lang="EN-US">Ios 4.0 </span><span style="font-family: 瀹嬩綋">澶氫換鍔′笉鏄紶緇熸剰涔変笂鐨勫浠誨姟銆傚彧鏄妸紼嬪簭鐨勭姸鎬佷繚瀛樿搗鏉ワ紝紼嬪簭鎸傝搗銆傚洜涓?/span><span lang="EN-US">Apple</span><span style="font-family:瀹嬩綋">榪樻病鍑嗗濂藉浠誨姟鍚屾椂榪愯錛?/span></p> <p class="MsoNormal"><span style="font-family:瀹嬩綋">涓昏鏄洜涓?/span><span lang="EN-US">battery</span><span style="font-family:瀹嬩綋">鍜?/span><span lang="EN-US">memory</span><span style="font-family:瀹嬩綋">榪欎袱涓棶棰樿繕娌℃湁瑙e喅銆?/span></p> <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal"><span style="font-family:瀹嬩綋">鐜板湪</span><span lang="EN-US">IOS 4</span><span style="font-family:瀹嬩綋">澶氫換鍔℃敮鎸佺殑綾誨瀷錛堝畼緗戯級錛?/span><span lang="EN-US">   </span></p> <p class="MsoNormal" align="left" style="margin-left:24.0pt;text-align:left; text-indent:-18.0pt;line-height:13.5pt;mso-list:l0 level1 lfo1;tab-stops:list 36.0pt"><!--[if !supportLists]--><span lang="EN-US" style="font-size:10.0pt;mso-bidi-font-size:9.0pt;font-family:Wingdings; mso-fareast-font-family:Wingdings;mso-bidi-font-family:Wingdings;color:#333333"><span style="mso-list:Ignore">§<span style="font:7.0pt "Times New Roman"">  </span></span></span><!--[endif]--><strong><span lang="EN-US" style="font-size:9.0pt;font-family:"Arial","sans-serif";color:#333333">Background audio</span></strong><span lang="EN-US" style="font-size:9.0pt;font-family:"Arial","sans-serif"; color:#333333"><o:p></o:p></span></p> <p class="MsoNormal" align="left" style="margin-left:24.0pt;text-align:left; text-indent:-18.0pt;line-height:13.5pt;mso-list:l0 level1 lfo1;tab-stops:list 36.0pt"><!--[if !supportLists]--><span lang="EN-US" style="font-size:10.0pt;mso-bidi-font-size:9.0pt;font-family:Wingdings; mso-fareast-font-family:Wingdings;mso-bidi-font-family:Wingdings;color:#333333"><span style="mso-list:Ignore">§<span style="font:7.0pt "Times New Roman"">  </span></span></span><!--[endif]--><strong><span lang="EN-US" style="font-size:9.0pt;font-family:"Arial","sans-serif";color:#333333">Voice over IP</span></strong><span lang="EN-US" style="font-size:9.0pt;font-family:"Arial","sans-serif"; color:#333333"><o:p></o:p></span></p> <p class="MsoNormal" align="left" style="margin-left:24.0pt;text-align:left; text-indent:-18.0pt;line-height:13.5pt;mso-list:l0 level1 lfo1;tab-stops:list 36.0pt"><!--[if !supportLists]--><span lang="EN-US" style="font-size:10.0pt;mso-bidi-font-size:9.0pt;font-family:Wingdings; mso-fareast-font-family:Wingdings;mso-bidi-font-family:Wingdings;color:#333333"><span style="mso-list:Ignore">§<span style="font:7.0pt "Times New Roman"">  </span></span></span><!--[endif]--><strong><span lang="EN-US" style="font-size:9.0pt;font-family:"Arial","sans-serif";color:#333333">Background location</span></strong><span lang="EN-US" style="font-size:9.0pt;font-family:"Arial","sans-serif"; color:#333333"> <o:p></o:p></span></p> <p class="MsoNormal" align="left" style="margin-left:24.0pt;text-align:left; text-indent:-18.0pt;line-height:13.5pt;mso-list:l0 level1 lfo1;tab-stops:list 36.0pt"><!--[if !supportLists]--><span lang="EN-US" style="font-size:10.0pt;mso-bidi-font-size:9.0pt;font-family:Wingdings; mso-fareast-font-family:Wingdings;mso-bidi-font-family:Wingdings;color:#333333"><span style="mso-list:Ignore">§<span style="font:7.0pt "Times New Roman"">  </span></span></span><!--[endif]--><strong><span lang="EN-US" style="font-size:9.0pt;font-family:"Arial","sans-serif";color:#333333">Push notifications</span></strong><span lang="EN-US" style="font-size:9.0pt;font-family: "Arial","sans-serif";color:#333333"><o:p></o:p></span></p> <p class="MsoNormal" align="left" style="margin-left:24.0pt;text-align:left; text-indent:-18.0pt;line-height:13.5pt;mso-list:l0 level1 lfo1;tab-stops:list 36.0pt"><!--[if !supportLists]--><span lang="EN-US" style="font-size:10.0pt;mso-bidi-font-size:9.0pt;font-family:Wingdings; mso-fareast-font-family:Wingdings;mso-bidi-font-family:Wingdings;color:#333333"><span style="mso-list:Ignore">§<span style="font:7.0pt "Times New Roman"">  </span></span></span><!--[endif]--><strong><span lang="EN-US" style="font-size:9.0pt;font-family:"Arial","sans-serif";color:#333333">Local notifications</span></strong><span lang="EN-US" style="font-size:9.0pt;font-family: "Arial","sans-serif";color:#333333"><o:p></o:p></span></p> <p class="MsoNormal" align="left" style="margin-left:24.0pt;text-align:left; text-indent:-18.0pt;line-height:13.5pt;mso-list:l0 level1 lfo1;tab-stops:list 36.0pt"><!--[if !supportLists]--><span lang="EN-US" style="font-size:10.0pt;mso-bidi-font-size:9.0pt;font-family:Wingdings; mso-fareast-font-family:Wingdings;mso-bidi-font-family:Wingdings;color:#333333"><span style="mso-list:Ignore">§<span style="font:7.0pt "Times New Roman"">  </span></span></span><!--[endif]--><strong><span lang="EN-US" style="font-size:9.0pt;font-family:"Arial","sans-serif";color:#333333">Task finishing</span></strong><span lang="EN-US" style="font-size:9.0pt;font-family:"Arial","sans-serif"; color:#333333"> - If your app is in mid-task when your customer leaves it, the app can now keep running to finish the task.<o:p></o:p></span></p> <p class="MsoNormal" align="left" style="margin-left:24.0pt;text-align:left; text-indent:-18.0pt;line-height:13.5pt;mso-list:l0 level1 lfo1;tab-stops:list 36.0pt"><!--[if !supportLists]--><span lang="EN-US" style="font-size:10.0pt;mso-bidi-font-size:9.0pt;font-family:Wingdings; mso-fareast-font-family:Wingdings;mso-bidi-font-family:Wingdings;color:#333333"><span style="mso-list:Ignore">§<span style="font:7.0pt "Times New Roman"">  </span></span></span><!--[endif]--><strong><span lang="EN-US" style="font-size:9.0pt;font-family:"Arial","sans-serif";color:#333333">Fast app switching</span></strong><span lang="EN-US" style="font-size:9.0pt;font-family: "Arial","sans-serif";color:#333333"> - All developers should take advantage of fast app switching, which allows users to leave your app and come right back to where they were when they left - no more having to reload the app.<o:p></o:p></span></p> <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal"><span lang="EN-US"><font face="瀹嬩綋">鎴戜嬌鐢ㄧ殑鏄?/font></span><span lang="EN-US" style="font-size: 9pt; font-family: Arial, sans-serif; color: rgb(51, 51, 51); font-weight: bold; ">Task finishing</span><strong><span style="font-size:9.0pt;font-family:瀹嬩綋;color:#333333">錛?/span></strong><strong><span style="font-size:9.0pt;font-family:"Arial","sans-serif";color:#333333"> </span></strong><strong><span style="font-size:9.0pt;font-family:瀹嬩綋;color:#333333">鏃㈠綋鐢ㄦ埛鎸傝搗紼嬪簭鏃訛紝濡傛灉榪樻湁</span></strong><strong><span lang="EN-US" style="font-size:9.0pt;font-family:"Arial","sans-serif";color:#333333">task</span></strong><strong><span style="font-size:9.0pt;font-family:瀹嬩綋;color:#333333">娌″畬鎴愶紝鍙互鎶婃敼</span></strong><strong><span lang="EN-US" style="font-size:9.0pt;font-family:"Arial","sans-serif";color:#333333">task</span></strong><strong><span style="font-size:9.0pt;font-family:瀹嬩綋;color:#333333">瀹屾垚銆?/span></strong><strong><span lang="EN-US" style="font-size:9.0pt;font-family:"Arial","sans-serif";color:#333333"><o:p></o:p></span></strong></p> <p class="MsoNormal"><strong><span lang="EN-US" style="font-size:9.0pt;font-family:"Arial","sans-serif"; color:#333333"><o:p> </o:p></span></strong></p> <p class="MsoNormal"><span style="font-size:9.0pt;font-family:瀹嬩綋;color:#333333">浣嗚繖涓槸鏈夐檺鍒剁殑錛屾椂闂寸殑闄愬埗錛屽氨鏄浣犵殑鍚庡彴紼嬪簭涓嶈兘鎵ц瓚呰繃鏌愪釜鏃墮棿銆?/span><span lang="EN-US" style="font-size:9.0pt;font-family:"Arial","sans-serif";color:#333333"><o:p></o:p></span></p> <p class="MsoNormal"><span style="font-size:9.0pt;font-family:瀹嬩綋;color:#333333">鎴戝垰鎵嶆墦</span><span lang="EN-US" style="font-size:9.0pt;font-family:"Arial","sans-serif";color:#333333">log</span><span style="font-size:9.0pt;font-family:瀹嬩綋;color:#333333">鐪嬩簡錛岀郴緇熻繑鍥?/span><span lang="EN-US" style="font-size:9.0pt;font-family:"Arial","sans-serif";color:#333333">500s</span><span style="font-size:9.0pt;font-family:瀹嬩綋;color:#333333">錛屾棦鏄?/span><span lang="EN-US" style="font-size:9.0pt;font-family:"Arial","sans-serif";color:#333333">8</span><span style="font-size:9.0pt;font-family:瀹嬩綋;color:#333333">鍒嗛挓錛?/span><span lang="EN-US" style="font-size:9.0pt;font-family:"Arial","sans-serif";color:#333333">8</span><span style="font-size:9.0pt;font-family:瀹嬩綋;color:#333333">鍒嗛挓濡傛灉榪樻病鎵ц瀹岋紝灝變細鑷姩鎶婃垜浠▼搴忕粨鏉熴?/span><span lang="EN-US" style="font-size:9.0pt;font-family:"Arial","sans-serif";color:#333333"><o:p></o:p></span></p><p class="MsoNormal"><span style="font-size:9.0pt;font-family:瀹嬩綋;color:#333333"><br></span></p><p class="MsoNormal"><font color="#333333" face="瀹嬩綋"><span style="font-size: 12px;">浠g爜濡備笅</span></font></p> <p class="MsoNormal"><span style="color: rgb(51, 51, 51); font-family: Arial, sans-serif; font-size: 12px; "><strong>#pragma mark -</strong></span></p><p class="MsoNormal"><font color="#333333" face="Arial, sans-serif"><span style="font-size: 12px;"><strong>#pragma mark Background Task Handle</strong></span></font></p><p class="MsoNormal"><font color="#333333" face="Arial, sans-serif"><span style="font-size: 12px;"><strong>- (void)applicationDidEnterBackground:(UIApplication *)application {</strong></span></font></p><p class="MsoNormal"><font color="#333333" face="Arial, sans-serif"><span style="font-size: 12px;"><strong><br></strong></span></font></p><p class="MsoNormal"><font color="#333333" face="Arial, sans-serif"><span style="font-size: 12px;"><strong><span id="dxzrtbp" class="Apple-tab-span" style="white-space:pre"> </span>// Request permission to run in the background. Provide an </strong></span></font></p><p class="MsoNormal"><font color="#333333" face="Arial, sans-serif"><span style="font-size: 12px;"><strong><span id="hpjdddh" class="Apple-tab-span" style="white-space:pre"> </span>// expiration handler in case the task runs long.</strong></span></font></p><p class="MsoNormal"><font color="#333333" face="Arial, sans-serif"><span style="font-size: 12px;"><strong><span id="ltxprxn" class="Apple-tab-span" style="white-space:pre"> </span>NSAssert(self->bgTask == UIBackgroundTaskInvalid, nil);</strong></span></font></p><p class="MsoNormal"><span id="hzvnxvj" class="Apple-tab-span" style="white-space: pre; font-size: 12px;"><font color="#333333" face="Arial, sans-serif"><strong> </strong></font></span></p><p class="MsoNormal"><font color="#333333" face="Arial, sans-serif"><span style="font-size: 12px;"><strong><span id="hzbddlz" class="Apple-tab-span" style="white-space:pre"> </span>self->bgTask = [application beginBackgroundTaskWithExpirationHandler: ^{</strong></span></font></p><p class="MsoNormal"><font color="#333333" face="Arial, sans-serif"><span style="font-size: 12px;"><strong><span id="pprjvrp" class="Apple-tab-span" style="white-space:pre"> </span>// Synchronize the cleanup call on the main thread in case</strong></span></font></p><p class="MsoNormal"><font color="#333333" face="Arial, sans-serif"><span style="font-size: 12px;"><strong><span id="bjdvflb" class="Apple-tab-span" style="white-space:pre"> </span>// the task catully finished at around the same time.</strong></span></font></p><p class="MsoNormal"><font color="#333333" face="Arial, sans-serif"><span style="font-size: 12px;"><strong><span id="pnbvnvb" class="Apple-tab-span" style="white-space:pre"> </span>dispatch_async(dispatch_get_main_queue(), ^{</strong></span></font></p><p class="MsoNormal"><span id="xhhlvtp" class="Apple-tab-span" style="white-space: pre; font-size: 12px;"><font color="#333333" face="Arial, sans-serif"><strong> </strong></font></span></p><p class="MsoNormal"><font color="#333333" face="Arial, sans-serif"><span style="font-size: 12px;"><strong><span id="dtvxrxd" class="Apple-tab-span" style="white-space:pre"> </span>if (UIBackgroundTaskInvalid != self->bgTask) {</strong></span></font></p><p class="MsoNormal"><span id="jjdnxvd" class="Apple-tab-span" style="white-space: pre; font-size: 12px;"><font color="#333333" face="Arial, sans-serif"><strong> </strong></font></span></p><p class="MsoNormal"><font color="#333333" face="Arial, sans-serif"><span style="font-size: 12px;"><strong><span id="zppjljx" class="Apple-tab-span" style="white-space:pre"> </span>[application endBackgroundTask:self->bgTask];</strong></span></font></p><p class="MsoNormal"><font color="#333333" face="Arial, sans-serif"><span style="font-size: 12px;"><strong><span id="hnpztrp" class="Apple-tab-span" style="white-space:pre"> </span>self->bgTask = UIBackgroundTaskInvalid;</strong></span></font></p><p class="MsoNormal"><font color="#333333" face="Arial, sans-serif"><span style="font-size: 12px;"><strong><span id="pvxjbhp" class="Apple-tab-span" style="white-space:pre"> </span>}</strong></span></font></p><p class="MsoNormal"><font color="#333333" face="Arial, sans-serif"><span style="font-size: 12px;"><strong><span id="vbdprnv" class="Apple-tab-span" style="white-space:pre"> </span>});</strong></span></font></p><p class="MsoNormal"><font color="#333333" face="Arial, sans-serif"><span style="font-size: 12px;"><strong><span id="bjdppfv" class="Apple-tab-span" style="white-space:pre"> </span>}];</strong></span></font></p><p class="MsoNormal"><span id="pnpjjrf" class="Apple-tab-span" style="white-space: pre; font-size: 12px;"><font color="#333333" face="Arial, sans-serif"><strong> </strong></font></span></p><p class="MsoNormal"><font color="#333333" face="Arial, sans-serif"><span style="font-size: 12px;"><strong><span id="bprtvzp" class="Apple-tab-span" style="white-space:pre"> </span>// Start the long-running task and return immediately.</strong></span></font></p><p class="MsoNormal"><font color="#333333" face="Arial, sans-serif"><span style="font-size: 12px;"><strong><span id="pvxrrbr" class="Apple-tab-span" style="white-space:pre"> </span>dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), </strong></span></font></p><p class="MsoNormal"><font color="#333333" face="Arial, sans-serif"><span style="font-size: 12px;"><strong><span id="xvprlhh" class="Apple-tab-span" style="white-space:pre"> </span>   ^{</strong></span></font></p><p class="MsoNormal"><font color="#333333" face="Arial, sans-serif"><span style="font-size: 12px;"><strong><span id="xnptvrz" class="Apple-tab-span" style="white-space:pre"> </span>   // Do the work assoicated with the task.<span id="tjdfxft" class="Apple-tab-span" style="white-space:pre"> </span></strong></span></font></p><p class="MsoNormal"><font color="#333333" face="Arial, sans-serif"><span style="font-size: 12px;"><strong><span id="xvppjhd" class="Apple-tab-span" style="white-space:pre"> </span>  for(int i = 0; i  < 1000; i++) {</strong></span></font></p><p class="MsoNormal"><font color="#333333" face="Arial, sans-serif"><span style="font-size: 12px;"><strong>                                                  //request network.</strong></span></font></p><p class="MsoNormal"><font color="#333333" face="Arial, sans-serif"><span style="font-size: 12px;"><strong>                                                  NSLog(@"hahah %d, Time Remain = %f", i, [application backgroundTimeRemaining]);</strong></span></font></p><p class="MsoNormal"><font color="#333333" face="Arial, sans-serif"><span style="font-size: 12px;"><strong>                                           }</strong></span></font></p><p class="MsoNormal"><font color="#333333" face="Arial, sans-serif"><span style="font-size: 12px;"><strong><span id="znlhhhf" class="Apple-tab-span" style="white-space:pre"> </span>   // Synchronize the cleanup all on the main thread in case</strong></span></font></p><p class="MsoNormal"><font color="#333333" face="Arial, sans-serif"><span style="font-size: 12px;"><strong><span id="dtvpjpn" class="Apple-tab-span" style="white-space:pre"> </span>   // the task catully finished at around the same time. </strong></span></font></p><p class="MsoNormal"><font color="#333333" face="Arial, sans-serif"><span style="font-size: 12px;"><strong><span id="xnxzlrf" class="Apple-tab-span" style="white-space:pre"> </span>   dispatch_async(dispatch_get_main_queue(), ^{</strong></span></font></p><p class="MsoNormal"><font color="#333333" face="Arial, sans-serif"><span style="font-size: 12px;"><strong><span id="lrjdxdz" class="Apple-tab-span" style="white-space:pre"> </span>   </strong></span></font></p><p class="MsoNormal"><font color="#333333" face="Arial, sans-serif"><span style="font-size: 12px;"><strong><span id="vbdppnd" class="Apple-tab-span" style="white-space:pre"> </span>   if (UIBackgroundTaskInvalid != self->bgTask) {</strong></span></font></p><p class="MsoNormal"><font color="#333333" face="Arial, sans-serif"><span style="font-size: 12px;"><strong><br></strong></span></font></p><p class="MsoNormal"><font color="#333333" face="Arial, sans-serif"><span style="font-size: 12px;"><strong><span id="nbvnxdb" class="Apple-tab-span" style="white-space:pre"> </span>   [application endBackgroundTask:self->bgTask];</strong></span></font></p><p class="MsoNormal"><font color="#333333" face="Arial, sans-serif"><span style="font-size: 12px;"><strong><span id="lbdvxfb" class="Apple-tab-span" style="white-space:pre"> </span>   self->bgTask = UIBackgroundTaskInvalid;</strong></span></font></p><p class="MsoNormal"><font color="#333333" face="Arial, sans-serif"><span style="font-size: 12px;"><strong><span id="fnpzbzn" class="Apple-tab-span" style="white-space:pre"> </span>   }</strong></span></font></p><p class="MsoNormal"><font color="#333333" face="Arial, sans-serif"><span style="font-size: 12px;"><strong><span id="dbnnrxl" class="Apple-tab-span" style="white-space:pre"> </span>   });</strong></span></font></p><p class="MsoNormal"><font color="#333333" face="Arial, sans-serif"><span style="font-size: 12px;"><strong><span id="ndprthn" class="Apple-tab-span" style="white-space:pre"> </span>   });</strong></span></font></p><p class="MsoNormal"><font color="#333333" face="Arial, sans-serif"><span style="font-size: 12px;"><strong>}</strong></span></font></p><p class="MsoNormal"><font color="#333333" face="Arial, sans-serif"><span style="font-size: 12px;"><strong>#pragma mark -</strong></span></font></p><p class="MsoNormal"><font color="#333333" face="Arial, sans-serif"><span style="font-size: 12px;"><strong>#pragma mark Local Notifications</strong></span></font></p><p class="MsoNormal"><font color="#333333" face="Arial, sans-serif"><span style="font-size: 12px;"><strong>- (void)scheduleAlarmForDate:(NSDate *)theDate {</strong></span></font></p><p class="MsoNormal"><span id="zfzjljh" class="Apple-tab-span" style="white-space: pre; font-size: 12px;"><font color="#333333" face="Arial, sans-serif"><strong> </strong></font></span></p><p class="MsoNormal"><font color="#333333" face="Arial, sans-serif"><span style="font-size: 12px;"><strong><span id="tzjdhnl" class="Apple-tab-span" style="white-space:pre"> </span>UIApplication *app = [UIApplication sharedApplication];</strong></span></font></p><p class="MsoNormal"><font color="#333333" face="Arial, sans-serif"><span style="font-size: 12px;"><strong><span id="bjdvxvr" class="Apple-tab-span" style="white-space:pre"> </span>NSArray *oldNotifications = [app scheduledLocalNotifications];</strong></span></font></p><p class="MsoNormal"><span id="hffzrpf" class="Apple-tab-span" style="white-space: pre; font-size: 12px;"><font color="#333333" face="Arial, sans-serif"><strong> </strong></font></span></p><p class="MsoNormal"><font color="#333333" face="Arial, sans-serif"><span style="font-size: 12px;"><strong><span id="pdpprpp" class="Apple-tab-span" style="white-space:pre"> </span>// Clear out the old notification before scheduling a new one.</strong></span></font></p><p class="MsoNormal"><font color="#333333" face="Arial, sans-serif"><span style="font-size: 12px;"><strong><span id="xxphtjf" class="Apple-tab-span" style="white-space:pre"> </span>if (0 < [oldNotifications count]) {</strong></span></font></p><p class="MsoNormal"><span id="flpptpx" class="Apple-tab-span" style="white-space: pre; font-size: 12px;"><font color="#333333" face="Arial, sans-serif"><strong> </strong></font></span></p><p class="MsoNormal"><font color="#333333" face="Arial, sans-serif"><span style="font-size: 12px;"><strong><span id="bptlvth" class="Apple-tab-span" style="white-space:pre"> </span>[app cancelAllLocalNotifications];</strong></span></font></p><p class="MsoNormal"><font color="#333333" face="Arial, sans-serif"><span style="font-size: 12px;"><strong><span id="lbnpzxl" class="Apple-tab-span" style="white-space:pre"> </span>}</strong></span></font></p><p class="MsoNormal"><span id="fdnrthn" class="Apple-tab-span" style="white-space: pre; font-size: 12px;"><font color="#333333" face="Arial, sans-serif"><strong> </strong></font></span></p><p class="MsoNormal"><font color="#333333" face="Arial, sans-serif"><span style="font-size: 12px;"><strong><span id="zfzbtrz" class="Apple-tab-span" style="white-space:pre"> </span>// Create a new notification</strong></span></font></p><p class="MsoNormal"><font color="#333333" face="Arial, sans-serif"><span style="font-size: 12px;"><strong><span id="znzxlrp" class="Apple-tab-span" style="white-space:pre"> </span>UILocalNotification *alarm = [[UILocalNotification alloc] init];</strong></span></font></p><p class="MsoNormal"><font color="#333333" face="Arial, sans-serif"><span style="font-size: 12px;"><strong><span id="jxztfdj" class="Apple-tab-span" style="white-space:pre"> </span>if (alarm) {</strong></span></font></p><p class="MsoNormal"><font color="#333333" face="Arial, sans-serif"><span style="font-size: 12px;"><strong><br></strong></span></font></p><p class="MsoNormal"><font color="#333333" face="Arial, sans-serif"><span style="font-size: 12px;"><strong><span id="nlxzlzl" class="Apple-tab-span" style="white-space:pre"> </span>alarm.fireDate = theDate;</strong></span></font></p><p class="MsoNormal"><font color="#333333" face="Arial, sans-serif"><span style="font-size: 12px;"><strong><span id="fdprjzx" class="Apple-tab-span" style="white-space:pre"> </span>alarm.timeZone = [NSTimeZone defaultTimeZone];</strong></span></font></p><p class="MsoNormal"><font color="#333333" face="Arial, sans-serif"><span style="font-size: 12px;"><strong><span id="ntfxhfl" class="Apple-tab-span" style="white-space:pre"> </span>alarm.repeatInterval = 0;</strong></span></font></p><p class="MsoNormal"><font color="#333333" face="Arial, sans-serif"><span style="font-size: 12px;"><strong><span id="rprzdrx" class="Apple-tab-span" style="white-space:pre"> </span>alarm.soundName = @"ping.caf";//@"default";</strong></span></font></p><p class="MsoNormal"><font color="#333333" face="Arial, sans-serif"><span style="font-size: 12px;"><strong><span id="vjtxxnj" class="Apple-tab-span" style="white-space:pre"> </span>alarm.alertBody = [NSString stringWithFormat:@"Time to wake up!Now is\n[%@]", </strong></span></font></p><p class="MsoNormal"><font color="#333333" face="Arial, sans-serif"><span style="font-size: 12px;"><strong><span id="djddflb" class="Apple-tab-span" style="white-space:pre"> </span>   [NSDate dateWithTimeIntervalSinceNow:10]];</strong></span></font></p><p class="MsoNormal"><span id="ftvhbhp" class="Apple-tab-span" style="white-space: pre; font-size: 12px;"><font color="#333333" face="Arial, sans-serif"><strong> </strong></font></span></p><p class="MsoNormal"><font color="#333333" face="Arial, sans-serif"><span style="font-size: 12px;"><strong><span id="jrttxlb" class="Apple-tab-span" style="white-space:pre"> </span>[app scheduleLocalNotification:alarm];</strong></span></font></p><p class="MsoNormal"><font color="#333333" face="Arial, sans-serif"><span style="font-size: 12px;"><strong><span id="tjvxznv" class="Apple-tab-span" style="white-space:pre"> </span>[alarm release];</strong></span></font></p><p class="MsoNormal"><font color="#333333" face="Arial, sans-serif"><span style="font-size: 12px;"><strong><span id="jrrtvtj" class="Apple-tab-span" style="white-space:pre"> </span>}</strong></span></font></p><p class="MsoNormal"><font color="#333333" face="Arial, sans-serif"><span style="font-size: 12px;"><strong>} </strong></span></font></p><p class="MsoNormal"><font color="#333333" face="Arial, sans-serif"><span style="font-size: 12px;"><strong>鏈夐棶棰樼暀璦錛屾垨鑰呭井鍗?</strong></span></font><a >http://t.sina.com.cn/passionuranus</a></p> <img src ="http://www.shnenglu.com/iuranus/aggbug/138063.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/iuranus/" target="_blank">鏀鍗?/a> 2011-01-06 11:58 <a href="http://www.shnenglu.com/iuranus/archive/2011/01/06/138063.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>objective c瀹炵幇閰嶇疆鏂囦歡+鍙嶅皠 宸ュ巶鍒涘緩http://www.shnenglu.com/iuranus/archive/2010/12/16/136606.html鏀鍗?/dc:creator>鏀鍗?/author>Thu, 16 Dec 2010 03:00:00 GMThttp://www.shnenglu.com/iuranus/archive/2010/12/16/136606.htmlhttp://www.shnenglu.com/iuranus/comments/136606.htmlhttp://www.shnenglu.com/iuranus/archive/2010/12/16/136606.html#Feedback0http://www.shnenglu.com/iuranus/comments/commentRss/136606.htmlhttp://www.shnenglu.com/iuranus/services/trackbacks/136606.html1. 鍏堝啓plist閰嶇疆鏂囦歡


plist鍐欏埌resouce閲岄潰鍘?/p>

閫氳繃NSBundle鎶婃暟鎹彇plist璇誨嚭鏉?/p>



2. 閫氳繃NSClassFromString鍒涘緩綾?/span>

NSClassFromString

NSSelectorFromString

姝e父鏉ヨ錛?/p>

id myObj = [[NSClassFromString(@"MySpecialClass") alloc] init];

鍜?/strong>

id myObj = [[MySpecialClass alloc] init];

鏄竴鏍風殑銆備絾鏄紝濡傛灉浣犵殑紼嬪簭涓茍涓嶅瓨鍦∕ySpecialClass榪欎釜綾伙紝涓嬮潰鐨勫啓娉曚細鍑洪敊錛岃屼笂闈㈢殑鍐欐硶鍙槸榪斿洖涓涓┖瀵硅薄鑰屽凡銆?/p>

鍥犳錛屽湪鏌愪簺鎯呭喌涓嬶紝鍙互浣跨敤NSClassFromString鏉ヨ繘琛屼綘涓嶇‘瀹氱殑綾葷殑鍒濆鍖栥?/p>

姣斿鍦╥Phone涓紝NSTask鍙兘灝變細鍑虹幇榪欑鎯呭喌錛屾墍浠ュ湪浣犻渶瑕佷嬌鐢∟STask鏃訛紝鏈濂戒嬌鐢細

[[NSClassFromString(@"NSTask") .....]]

鑰屼笉瑕佺洿鎺ヤ嬌鐢╗NSTask ...]榪欑鍐欐硶銆?/p>

NSClassFromString鐨勫ソ澶勬槸錛?/font>

1 寮卞寲榪炴帴錛?font color="#000000" style="line-height: normal; ">鍥犳騫朵笉浼氭妸娌℃湁鐨凢ramework涔焞ink鍒扮▼搴忎腑銆?/font>

2 涓嶉渶瑕佷嬌鐢╥mport錛?font color="#000000" style="line-height: normal; ">鍥犱負綾繪槸鍔ㄦ佸姞杞界殑錛屽彧瑕佸瓨鍦ㄥ氨鍙互鍔犺澆銆?/font>


for (int c=0; c<[classNames count]; c++) {

NSString *className=[classNames objectAtIndex:c];

id class=[[NSClassFromString(className) alloc] init];

for (int i=0; i<[params count]; i++) {

[class performSelector:NSSelectorFromString([NSString stringWithFormat:@"setA%i",i])];

}

}


鏈夐棶棰橈紝璇風暀璦

鏂版氮寰崥錛歅assionuranus



]]>
Objective C鍩烘湰鏁版嵁綾誨瀷http://www.shnenglu.com/iuranus/archive/2010/12/14/136404.html鏀鍗?/dc:creator>鏀鍗?/author>Tue, 14 Dec 2010 10:48:00 GMThttp://www.shnenglu.com/iuranus/archive/2010/12/14/136404.htmlhttp://www.shnenglu.com/iuranus/comments/136404.htmlhttp://www.shnenglu.com/iuranus/archive/2010/12/14/136404.html#Feedback1http://www.shnenglu.com/iuranus/comments/commentRss/136404.htmlhttp://www.shnenglu.com/iuranus/services/trackbacks/136404.html鍏變笁縐?

1. int
杈撳嚭鏍煎紡絎︼細%i, %d, %o %x,

2. float
杈撳嚭鏍煎紡絎︼細%f, %e, %g

3. double
杈撳嚭鏍煎紡絎︼細%f, %e, %g


4. char
杈撳嚭鏍煎紡絎︼細%c


闄愬畾絎︼細

1. long
long int: %li
long double: %Lf
褰㈡垚long int閫氳繃鍦ㄦ暟瀛楀悗闈㈠姞L.
long int number = 123324123234123L;

2. long long
long long int: %lli

3. short
short int: %hi

4. unsigned



short

unsigned

signed


]]>
iPhone鍙戝竷鍓嶅噯澶?/title><link>http://www.shnenglu.com/iuranus/archive/2010/12/14/136403.html</link><dc:creator>鏀鍗?/dc:creator><author>鏀鍗?/author><pubDate>Tue, 14 Dec 2010 10:33:00 GMT</pubDate><guid>http://www.shnenglu.com/iuranus/archive/2010/12/14/136403.html</guid><wfw:comment>http://www.shnenglu.com/iuranus/comments/136403.html</wfw:comment><comments>http://www.shnenglu.com/iuranus/archive/2010/12/14/136403.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/iuranus/comments/commentRss/136403.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/iuranus/services/trackbacks/136403.html</trackback:ping><description><![CDATA[娌℃椂闂村啓blog錛屼絾鎴戝彂涓や釜瀹樻柟鏂囨。澶у鍙互浣滀負鍙傝?    <div>1. 濡備綍緙栬瘧distribution錛?adhoc絳夌増鏈?/div> <div><a >http://wenku.baidu.com/view/ba98defff705cc175527094c.html</a></div> <div>2. 涓婁紶鍓嶇殑鍑嗗,鏃㈡槸浣跨敤itunes connect </div> <div><a >http://wenku.baidu.com/view/949a954de518964bcf847c7c.html</a></div> <br>鏈夐棶棰橈紝璇風暀璦<br><br>鏂版氮寰崥錛歅assionuranus <img src ="http://www.shnenglu.com/iuranus/aggbug/136403.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/iuranus/" target="_blank">鏀鍗?/a> 2010-12-14 18:33 <a href="http://www.shnenglu.com/iuranus/archive/2010/12/14/136403.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>感谢您访问我们的网站,您可能还对以下资源感兴趣:</p> <a href="http://www.shnenglu.com/" title="精品视频久久久久">精品视频久久久久</a> <div class="friend-links"> </div> </div> </footer> <a href="http://www.yczu.cn" target="_blank">国产精品伦理久久久久久</a>| <a href="http://www.blog91.cn" target="_blank">欧美丰满熟妇BBB久久久</a>| <a href="http://www.kzhg.net.cn" target="_blank">久久精品www人人爽人人</a>| <a href="http://www.szmpp.cn" target="_blank">亚洲七七久久精品中文国产</a>| <a href="http://www.beijianyi.cn" target="_blank">91精品国产91久久久久久青草</a>| <a href="http://www.604664.cn" target="_blank">91精品国产综合久久婷婷</a>| <a href="http://www.98sr.cn" target="_blank">色婷婷综合久久久久中文</a>| <a href="http://www.hygame8888.cn" target="_blank">久久久久久久女国产乱让韩</a>| <a href="http://www.abcvi.cn" target="_blank">久久强奷乱码老熟女网站</a>| <a href="http://www.xhcedu.cn" target="_blank">狠狠色噜噜色狠狠狠综合久久</a>| <a href="http://www.up2me.cn" target="_blank">一本一道久久a久久精品综合</a>| <a href="http://www.baicar.cn" target="_blank">久久久久久久久66精品片</a>| <a href="http://www.mg7701.cn" target="_blank">伊人色综合久久天天网</a>| <a href="http://www.chenghuilin.cn" target="_blank">日产精品久久久久久久</a>| <a href="http://www.dui46.cn" target="_blank">精产国品久久一二三产区区别</a>| <a href="http://www.sdyingdahb.cn" target="_blank">综合久久精品色</a>| <a href="http://www.psaus.cn" target="_blank">色偷偷久久一区二区三区</a>| <a href="http://www.chaohu8.cn" target="_blank">久久w5ww成w人免费</a>| <a href="http://www.qvvj.cn" target="_blank">中文字幕一区二区三区久久网站 </a>| <a href="http://www.p6817.cn" target="_blank">国产一区二区三区久久精品</a>| <a href="http://www.jituansms.cn" target="_blank">久久国产精品77777</a>| <a href="http://www.port1.com.cn" target="_blank">中文字幕久久欲求不满</a>| <a href="http://www.niguoyi.cn" target="_blank">久久精品国产99久久香蕉</a>| <a href="http://www.yidasoft.com.cn" target="_blank">亚洲国产成人乱码精品女人久久久不卡 </a>| <a href="http://www.sfttc.cn" target="_blank">亚洲乱亚洲乱淫久久</a>| <a href="http://www.x3077.cn" target="_blank">久久久久亚洲精品天堂久久久久久</a>| <a href="http://www.reboc.cn" target="_blank">色偷偷88欧美精品久久久 </a>| <a href="http://www.vyty.cn" target="_blank">欧美亚洲国产精品久久</a>| <a href="http://www.shhuguang.com.cn" target="_blank">伊人色综合久久天天人守人婷 </a>| <a href="http://www.hthotel.com.cn" target="_blank">中文字幕亚洲综合久久2</a>| <a href="http://www.92loc.cn" target="_blank">久久毛片一区二区</a>| <a href="http://www.cynh.net.cn" target="_blank">国产精品久久久久jk制服</a>| <a href="http://www.paper51.cn" target="_blank">久久久99精品成人片中文字幕</a>| <a href="http://www.syyinuo.cn" target="_blank">亚洲中文字幕久久精品无码APP </a>| <a href="http://www.jzxqbz.cn" target="_blank">亚洲国产精品一区二区久久hs</a>| <a href="http://www.baojingqi88.org.cn" target="_blank">国产∨亚洲V天堂无码久久久</a>| <a href="http://www.chuidu.cn" target="_blank">久久精品成人一区二区三区</a>| <a href="http://www.ghzu.cn" target="_blank">日本欧美久久久久免费播放网</a>| <a href="http://www.my1983.cn" target="_blank">欧美久久综合九色综合</a>| <a href="http://www.esog.com.cn" target="_blank">精品久久久久久国产潘金莲</a>| <a href="http://www.hezh.cn" target="_blank">久久精品桃花综合</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>