Search Results

Search found 166 results on 7 pages for 'doris sel'.

Page 7/7 | < Previous Page | 3 4 5 6 7 

  • Background color remaining when switching views

    - by Guy
    Hi Guys. I have a UIViewController named equationVC who's user interface is being programmatically created from another NSObject class called equationCon. Upon loading equationVC, a method called chooseInterface is called from the equationCon class. I have a global variable (globalVar) that points to a user defined string. chooseInterface finds a method in the equationCon class that matches the string globalVar points to. In this case, let's say that globalVar points to a string that is called "methodThatMatches." In methodThatMatches, another view controller needs to show the results of what methodThatMatches did. methodThatMatches creates a new equationVC that calls upon methodThatMatches2. As a test, each method changes the color of the background. When the application starts up, I get a purple background, but as soon as I hit backwards I get another purple screen, which should be yellow. I do not think that I am release the view properly. Can anyone help? -(void)chooseInterface { NSString* equationTemp = [globalVar stringByReplacingOccurrencesOfString:@" " withString:@""]; equationTemp = [equationTemp stringByReplacingOccurrencesOfString:@"'" withString:@""]; SEL equationName = NSSelectorFromString(equationTemp); NSLog(@"selector! %@",NSStringFromSelector(equationName)); if([self respondsToSelector:equationName]){ [self performSelector:equationName]; } } -(void)methodThatMatches{ self.equationVC.view.backgroundColor = [UIColor yellowColor]; [setGlobalVar:@"methodThatMatches2"]; EquationVC* temp = [[EquationVC alloc] init]; [[self.equationVC navigationController] pushViewController:temp animated:YES ]; [temp release]; } -(void)methodThatmatches2{ self.equationVC.view.backgroundColor = [UIColor purpleColor]; }

    Read the article

  • Inheritance issue with ivar on the iPhone

    - by Buffalo
    I am using the BLIP/MYNetwork library to establish a basic tcp socket connection between the iPhone and my computer. So far, the code builds and runs correctly in simulator but deploying to device yields the following error: error: property 'delegate' attempting to use ivar '_delegate' declared in super class of 'TCPConnection' @interface TCPConnection : TCPEndpoint { @private TCPListener *_server; IPAddress *_address; BOOL _isIncoming, _checkedPeerCert; TCPConnectionStatus _status; TCPReader *_reader; TCPWriter *_writer; NSError *_error; NSTimeInterval _openTimeout; } /** The delegate object that will be called when the connection opens, closes or receives messages. */ @property (assign) id<TCPConnectionDelegate> delegate; /** The delegate messages sent by TCPConnection. All methods are optional. */ @protocol TCPConnectionDelegate <NSObject> @optional /** Called after the connection successfully opens. */ - (void) connectionDidOpen: (TCPConnection*)connection; /** Called after the connection fails to open due to an error. */ - (void) connection: (TCPConnection*)connection failedToOpen: (NSError*)error; /** Called when the identity of the peer is known, if using an SSL connection and the SSL settings say to check the peer's certificate. This happens, if at all, after the -connectionDidOpen: call. */ - (BOOL) connection: (TCPConnection*)connection authorizeSSLPeer: (SecCertificateRef)peerCert; /** Called after the connection closes. You can check the connection's error property to see if it was normal or abnormal. */ - (void) connectionDidClose: (TCPConnection*)connection; @end @interface TCPEndpoint : NSObject { NSMutableDictionary *_sslProperties; id _delegate; } - (void) tellDelegate: (SEL)selector withObject: (id)param; @end Does anyone know how I would fix this? Would I simply declare _delegate as a public property of the base class "TCPEndPoint"? Thanks for the help ya'll!

    Read the article

  • mysql_real_escape_string() just makes an empty string?

    - by James P
    I am using a jQuery AJAX request to a page called like.php that connects to my database and inserts a row. This is the like.php code: <?php // Some config stuff define(DB_HOST, 'localhost'); define(DB_USER, 'root'); define(DB_PASS, ''); define(DB_NAME, 'quicklike'); $link = mysql_connect(DB_HOST, DB_USER, DB_PASS) or die('ERROR: ' . mysql_error()); $sel = mysql_select_db(DB_NAME, $link) or die('ERROR: ' . mysql_error()); $likeMsg = mysql_real_escape_string(trim($_POST['likeMsg'])); $timeStamp = time(); if(empty($likeMsg)) die('ERROR: Message is empty'); $sql = "INSERT INTO `likes` (like_message, timestamp) VALUES ('$likeMsg', $timeStamp)"; $result = mysql_query($sql, $link) or die('ERROR: ' . mysql_error()); echo mysql_insert_id(); mysql_close($link); ?> The problematic line is $likeMsg = mysql_real_escape_string(trim($_POST['likeMsg']));. It seems to just return an empty string, and in my database under the like_message column all I see is blank entries. If I remove mysql_real_escape_string() though, it works fine. Here's my jQuery code if it helps. $('#like').bind('keydown', function(e) { if(e.keyCode == 13) { var likeMessage = $('#changer p').html(); if(likeMessage) { $.ajax({ cache: false, url: 'like.php', type: 'POST', data: { likeMsg: likeMessage }, success: function(data) { $('#like').unbind(); writeLikeButton(data); } }); } else { $('#button_container').html(''); } } }); All this jQuery code works fine, I've tested it myself independently. Any help is greatly appreciated, thanks.

    Read the article

  • iPhone: Using dispatch_after to mimick NSTimer

    - by Joseph Tura
    Don't know a whole lot about blocks. How would you go about mimicking a repeating NSTimer with dispatch_after? My problem is that I want to "pause" a timer when the app moves to the background, but subclassing NSTimer does not seem to work. I tried something which seems to work. I cannot judge its performance implications or whether it could be greatly optimized. Any input is welcome. #import "TimerWithPause.h" @implementation TimerWithPause @synthesize timeInterval; @synthesize userInfo; @synthesize invalid; @synthesize invocation; + (TimerWithPause *)scheduledTimerWithTimeInterval:(NSTimeInterval)aTimeInterval target:(id)aTarget selector:(SEL)aSelector userInfo:(id)aUserInfo repeats:(BOOL)aTimerRepeats { TimerWithPause *timer = [[[TimerWithPause alloc] init] autorelease]; timer.timeInterval = aTimeInterval; NSMethodSignature *signature = [[aTarget class] instanceMethodSignatureForSelector:aSelector]; NSInvocation *aInvocation = [NSInvocation invocationWithMethodSignature:signature]; [aInvocation setSelector:aSelector]; [aInvocation setTarget:aTarget]; [aInvocation setArgument:&timer atIndex:2]; timer.invocation = aInvocation; timer.userInfo = aUserInfo; if (!aTimerRepeats) { timer.invalid = YES; } [timer fireAfterDelay]; return timer; } - (void)fireAfterDelay { dispatch_time_t delay = dispatch_time(DISPATCH_TIME_NOW, self.timeInterval * NSEC_PER_SEC); dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); dispatch_after(delay, queue, ^{ [invocation performSelectorOnMainThread:@selector(invoke) withObject:nil waitUntilDone:NO]; if (!invalid) { [self fireAfterDelay]; } }); } - (void)invalidate { invalid = YES; [invocation release]; invocation = nil; [userInfo release]; userInfo = nil; } - (void)dealloc { [self invalidate]; [super dealloc]; } @end

    Read the article

  • forward invocation, by hand vs magically?

    - by John Smith
    I have the following two class: //file FruitTree.h @interface FruitTree : NSObject { Fruit * f; Leaf * l; } @end //file FruitTree.m @implementation FruitTree //here I get the number of seeds from the object f @end //file Fruit @interface Fruit : NSObject { int seeds; } -(int) countfruitseeds; @end My question is at the point of how I request the number of seeds from f. I have two choices. Either: Since I know f I can explicitly call it, i.e. I implement the method -(int) countfruitseeds { return [f countfruitseeds]; } Or: I can just use forwardInvocation: - (NSMethodSignature *)methodSignatureForSelector:(SEL)selector { // does the delegate respond to this selector? if ([f respondsToSelector:selector]) return [f methodSignatureForSelector:selector]; else if ([l respondsToSelector:selector]) return [l methodSignatureForSelector:selector]; else return [super methodSignatureForSelector: selector]; } - (void)forwardInvocation:(NSInvocation *)invocation { [invocation invokeWithTarget:f]; } (Note this is only a toy example to ask my question. My real classes have lots of methods, which is why I am asking.) Which is the better/faster method?

    Read the article

  • Performing selectors on main thread with NSInvocation

    - by kpower
    I want to perform animation on main thread (cause UIKit objects are not thread-safe), but prepare it in some separate thread. I have (baAnimation - is CABasicAnimation allocated & inited before): SEL animationSelector = @selector(addAnimation:forKey:); NSString *keyString = @"someViewAnimation"; NSInvocation *inv = [NSInvocation invocationWithMethodSignature:[workView.layer methodSignatureForSelector:animationSelector]]; [inv setTarget:workView.layer]; [inv setSelector:animationSelector]; [inv setArgument:baAnimation atIndex:2]; [inv setArgument:keyString atIndex:3]; [inv performSelectorOnMainThread:@selector(invoke) withObject:nil waitUntilDone:NO]; I get: *** +[NSCFString length]: unrecognized selector sent to class 0x1fb36a0 Calls: > #0 0x020984e6 in objc_exception_throw > #1 0x01f7e8fb in +[NSObject doesNotRecognizeSelector:] > #2 0x01f15676 in ___forwarding___ > #3 0x01ef16c2 in __forwarding_prep_0___ > #4 0x01bb3c21 in -[CALayer addAnimation:forKey:] > #5 0x01ef172d in __invoking___ > #6 0x01ef1618 in -[NSInvocation invoke] But [workView.layer addAnimation:baAnimation forKey:@"someViewAnimation"]; works fine. What am I doing wrong?

    Read the article

  • Null Pointer Exception in Primavera P6 8.1

    - by gwrichard
    I am getting a null pointer exception in a Primavera P6 8.1 installation. The exception only occurs in one section of the web-client: Application settings.P6 web and the P6 API are deployed on the same WebLogic (10.3.5) node running on a Windows Server 2008 R2 installation. I have done this installation using this same software stack a dozen times and don't have this issue on any of the other installs. Exact error below: Match: beginTraversal Match: digest selected JREDesc: JREDesc[version 1.6.0_20+, heap=-1--1, args=null, href=http://java.sun.com/products/autodl/j2se, sel=false, null, null], JREInfo: JREInfo for index 0: platform is: 1.7 product is: 1.7.0_17 location is: http://java.sun.com/products/autodl/j2se path is: C:\Program Files (x86)\Java\jre7\bin\javaw.exe args is: null native platform is: Windows, x86 [ x86, 32bit ] JavaFX runtime is: JavaFX 2.2.7 found at C:\Program Files (x86)\Java\jre7\ enabled is: true registered is: true system is: true Match: ignoring maxHeap: -1 Match: ignoring InitHeap: -1 Match: digesting vmargs: null Match: digested vmargs: [JVMParameters: isSecure: true, args: ] Match: JVM args after accumulation: [JVMParameters: isSecure: true, args: ] Match: digest LaunchDesc: http://localhost:7001/p6/action/jnlp/appletsjnlp.jnlp?mainClass=com.primavera.pvapplets.adminpreferences.AdminPreferencesApplet&classPath=adminpreferences.jar,prm-applets-common.jar,forms-1.0.7.jar,prm-guisupport.jar,prm-to.jar,jide.jar,tablesupport.jar,formsupport.jar,applets-bo.jar,commons-lang.jar,prm-common.jar,resource_strings.jar,prm-img.jar,commons-logging.jar&name=AdminPreferences&version=8.1.2.0.0602 Match: digest properties: [] Match: JVM args: [JVMParameters: isSecure: true, args: ] Match: endTraversal .. Match: JVM args final: Match: Running JREInfo Version match: 1.7.0.17 == 1.7.0.17 Match: Running JVM args match: have:<> satisfy want:<> Java Plug-in 10.17.2.02 Using JRE version 1.7.0_17-b02 Java HotSpot(TM) Client VM User home directory = C:\Users\gwrichard ---------------------------------------------------- c: clear console window f: finalize objects on finalization queue g: garbage collect h: display this help message l: dump classloader list m: print memory usage o: trigger logging q: hide console r: reload policy configuration s: dump system and deployment properties t: dump thread list v: dump thread stack x: clear classloader cache 0-5: set trace level to <n> ----------------------------------------------------

    Read the article

  • C As Principal Class For Mac App

    - by CodaFi
    So, I've got a c file raring to go and be the main class behind an all-C mac-app, however, a combination of limiting factors are preventing the application from being launched. As it currently stands, the project is just a main.m and a class called AppDelegate.c, so I entered "AppDelegate" as the name of the principal class in the info.plist, and to my complete surprise, the log printed: Unable to find class: AppDelegate, exiting This would work perfectly well in iOS, because the main function accepts the name of a delegate class, and handles it automatically, but NSApplicationMain() takes no such argument. Now, I know this stems from the fact that there are no @interface/@implementation directives in C, and that's really what the OS seems to be looking for, so I wrote a simple NSApplication subclass and provided it as the Principal Class to the plist, and it launched perfectly well. My question is, how could one go about setting a c file as the principal class in a mac application and have it launch correctly? PS, don't ask what or why I'm doing this for, the foundation must be dug. For @millimoose's amusement, here be the AppDelegate.c file: #include <objc/runtime.h> #include <objc/message.h> struct AppDel { Class isa; id window; }; // This is a strong reference to the class of the AppDelegate // (same as [AppDelegate class]) Class AppDelClass; BOOL AppDel_didFinishLaunching(struct AppDel *self, SEL _cmd, void *application, void *options) { self->window = objc_msgSend(objc_getClass("NSWindow"), sel_getUid("alloc")); self->window = objc_msgSend(self->window, sel_getUid("init")); objc_msgSend(self->window, sel_getUid("makeKeyAndOrderFront:"), self); return YES; }

    Read the article

  • How can I read kindle book under xfce(ubuntu)? (using chromebook)(wine not working)

    - by yshn
    I'm using chromebook, dual booting xfce(ubuntu) and cr os. The ebook I bought on amazon is not supported on kindle cloud reader. (Under xfce)I downloaded wine and tried installing kindle for pc under wine, and after couples of times of trials, it always said installation error and could not install kindle, and it's been giving me: Unhandled exception: unimplemented function msvcp90.dll.??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAE@XZ called in 32-bit code (0x7b839cf2). Register dump: CS:0023 SS:002b DS:002b ES:002b FS:0063 GS:006b EIP:7b839cf2 ESP:0033fcd4 EBP:0033fd38 EFLAGS:00000287( - -- I S - -P-C) EAX:7b826245 EBX:7b894ff4 ECX:00000008 EDX:0033fcf4 ESI:80000100 EDI:00dca568 Stack dump: 0x0033fcd4: 0033fd58 00000008 00000030 80000100 0x0033fce4: 00000001 00000000 7b839cf2 00000002 0x0033fcf4: 7e24b340 7e24f2ca 0000000d 00110000 0x0033fd04: 7bc47a0d 7e1dbff4 7e1417f0 00dca568 0x0033fd14: 0033fd24 7bc65d0b 00110000 00000000 0x0033fd24: 0033fd44 7e141801 7b839caa 7e1dbff4 000c: sel=0067 base=00000000 limit=00000000 16-bit r-x Backtrace: =0 0x7b839cf2 in kernel32 (+0x29cf2) (0x0033fd38) 1 0x7e24b2a8 in msvcp90 (+0x3b2a7) (0x0033fd68) 2 0x7e216c9d in msvcp90 (+0x6c9c) (0x0033fde8) 3 0x00938fdd in kindle (+0x538fdc) (0x0033fde8) 4 0x0089dc71 in kindle (+0x49dc70) (0x0033fe70) 5 0x7b859cdc call_process_entry+0xb() in kernel32 (0x0033fe88) 6 0x7b85af4f in kernel32 (+0x4af4e) (0x0033fec8) 7 0x7bc71db0 call_thread_func_wrapper+0xb() in ntdll (0x0033fed8) 8 0x7bc7486d call_thread_func+0x7c() in ntdll (0x0033ffa8) 9 0x7bc71d8e RtlRaiseException+0x21() in ntdll (0x0033ffc8) 10 0x7bc49f4e call_dll_entry_point+0x61d() in ntdll (0x0033ffe8) 0x7b839cf2: subl $4,%esp Modules: Module Address Debug info Name (130 modules) PE 340000- 37d000 Deferred ssleay32 PE 390000- 3ca000 Deferred webcoreviewer PE 3d0000- 3e0000 Deferred pthreadvc2 PE 400000- 1433000 Export kindle PE 1440000- 155c000 Deferred libeay32 PE 1560000- 169f000 Deferred qtscript4 PE 16a0000- 1795000 Deferred libxml2 PE 17a0000- 18c7000 Deferred javascriptcore PE 18d0000- 1974000 Deferred cflite PE 1980000- 2048000 Deferred libwebcore PE 2050000- 208d000 Deferred libjpeg PE 10000000-10a34000 Deferred qtwebkit4 PE 4a800000-4a8eb000 Deferred icuuc46 PE 4a900000-4aa36000 Deferred icuin46 PE 4ad00000-4bb80000 Deferred icudt46 PE 5a4c0000-5a4d4000 Deferred zlib1 PE 61000000-61056000 Deferred qtxml4 PE 62000000-62093000 Deferred qtsql4 PE 64000000-640ef000 Deferred qtnetwork4 PE 65000000-657b8000 Deferred qtgui4 PE 67000000-67228000 Deferred qtcore4 PE 78050000-780b9000 Deferred msvcp100 PE 78aa0000-78b5e000 Deferred msvcr100 ELF 7b800000-7ba15000 Dwarf kernel32 -PE 7b810000-7ba15000 \ kernel32 ELF 7bc00000-7bcc3000 Dwarf ntdll -PE 7bc10000-7bcc3000 \ ntdll ELF 7bf00000-7bf04000 Deferred ELF 7d7f7000-7d800000 Deferred librt.so.1 ELF 7d800000-7d818000 Deferred libresolv.so.2 ELF 7d818000-7d861000 Deferred libdbus-1.so.3 ELF 7d861000-7d873000 Deferred libp11-kit.so.0 ELF 7d873000-7d8f8000 Deferred libgcrypt.so.11 ELF 7d8f8000-7d90a000 Deferred libtasn1.so.3 ELF 7d90a000-7d913000 Deferred libkrb5support.so.0 ELF 7d913000-7d9e2000 Deferred libkrb5.so.3 ELF 7da42000-7da47000 Deferred libgpg-error.so.0 ELF 7da47000-7da6f000 Deferred libk5crypto.so.3 ELF 7da6f000-7da81000 Deferred libavahi-client.so.3 ELF 7da81000-7da8f000 Deferred libavahi-common.so.3 ELF 7da8f000-7db53000 Deferred libgnutls.so.26 ELF 7db53000-7db91000 Deferred libgssapi_krb5.so.2 ELF 7db91000-7dbe4000 Deferred libcups.so.2 ELF 7dc21000-7dc55000 Deferred uxtheme -PE 7dc30000-7dc55000 \ uxtheme ELF 7dc55000-7dc5b000 Deferred libxfixes.so.3 ELF 7dc5b000-7dc66000 Deferred libxcursor.so.1 ELF 7dc6a000-7dc6e000 Deferred libkeyutils.so.1 ELF 7dc6e000-7dc73000 Deferred libcom_err.so.2 ELF 7dca5000-7dccf000 Deferred libexpat.so.1 ELF 7dccf000-7dd03000 Deferred libfontconfig.so.1 ELF 7dd03000-7dd13000 Deferred libxi.so.6 ELF 7dd13000-7dd17000 Deferred libxcomposite.so.1 ELF 7dd17000-7dd20000 Deferred libxrandr.so.2 ELF 7dd20000-7dd2a000 Deferred libxrender.so.1 ELF 7dd2a000-7dd30000 Deferred libxxf86vm.so.1 ELF 7dd30000-7dd34000 Deferred libxinerama.so.1 ELF 7dd34000-7dd3b000 Deferred libxdmcp.so.6 ELF 7dd3b000-7dd5c000 Deferred libxcb.so.1 ELF 7dd5c000-7dd76000 Deferred libice.so.6 ELF 7dd76000-7deaa000 Deferred libx11.so.6 ELF 7deaa000-7debc000 Deferred libxext.so.6 ELF 7debc000-7dec5000 Deferred libsm.so.6 ELF 7ded4000-7df67000 Deferred winex11 -PE 7dee0000-7df67000 \ winex11 ELF 7df67000-7e001000 Deferred libfreetype.so.6 ELF 7e001000-7e023000 Deferred iphlpapi -PE 7e010000-7e023000 \ iphlpapi ELF 7e023000-7e03e000 Deferred wsock32 -PE 7e030000-7e03e000 \ wsock32 ELF 7e03e000-7e071000 Deferred wintrust -PE 7e040000-7e071000 \ wintrust ELF 7e071000-7e129000 Deferred crypt32 -PE 7e080000-7e129000 \ crypt32 ELF 7e129000-7e158000 Deferred msvcr90 -PE 7e130000-7e158000 \ msvcr90 ELF 7e158000-7e1e5000 Deferred msvcrt -PE 7e170000-7e1e5000 \ msvcrt ELF 7e1e5000-7e2ca000 Dwarf msvcp90 -PE 7e210000-7e2ca000 \ msvcp90 ELF 7e2ca000-7e2ec000 Deferred imm32 -PE 7e2d0000-7e2ec000 \ imm32 ELF 7e2ec000-7e3de000 Deferred oleaut32 -PE 7e300000-7e3de000 \ oleaut32 ELF 7e3de000-7e418000 Deferred winspool -PE 7e3f0000-7e418000 \ winspool ELF 7e418000-7e4f7000 Deferred comdlg32 -PE 7e420000-7e4f7000 \ comdlg32 ELF 7e4f7000-7e51f000 Deferred msacm32 -PE 7e500000-7e51f000 \ msacm32 ELF 7e51f000-7e5cc000 Deferred winmm -PE 7e530000-7e5cc000 \ winmm ELF 7e5cc000-7e641000 Deferred rpcrt4 -PE 7e5e0000-7e641000 \ rpcrt4 ELF 7e641000-7e749000 Deferred ole32 -PE 7e660000-7e749000 \ ole32 ELF 7e749000-7e841000 Deferred comctl32 -PE 7e750000-7e841000 \ comctl32 ELF 7e841000-7ea52000 Deferred shell32 -PE 7e850000-7ea52000 \ shell32 ELF 7ea52000-7eabc000 Deferred shlwapi -PE 7ea60000-7eabc000 \ shlwapi ELF 7eabc000-7ead5000 Deferred version -PE 7eac0000-7ead5000 \ version ELF 7ead5000-7eb35000 Deferred advapi32 -PE 7eae0000-7eb35000 \ advapi32 ELF 7eb35000-7ebf2000 Deferred gdi32 -PE 7eb40000-7ebf2000 \ gdi32 ELF 7ebf2000-7ed32000 Deferred user32 -PE 7ec00000-7ed32000 \ user32 ELF 7ed32000-7ed58000 Deferred mpr -PE 7ed40000-7ed58000 \ mpr ELF 7ed58000-7ed6e000 Deferred libz.so.1 ELF 7ed6e000-7eddd000 Deferred wininet -PE 7ed80000-7eddd000 \ wininet ELF 7eddd000-7ee0f000 Deferred ws2_32 -PE 7ede0000-7ee0f000 \ ws2_32 ELF 7ee0f000-7ee1c000 Deferred libnss_files.so.2 ELF 7ee1c000-7ee28000 Deferred libnss_nis.so.2 ELF 7ee28000-7ee42000 Deferred libnsl.so.1 ELF 7ee42000-7ee4b000 Deferred libnss_compat.so.2 ELF 7efd4000-7f000000 Deferred libm.so.6 ELF f74a3000-f74a7000 Deferred libxau.so.6 ELF f74a8000-f74ad000 Deferred libdl.so.2 ELF f74ad000-f7657000 Deferred libc.so.6 ELF f7658000-f7673000 Deferred libpthread.so.0 ELF f7675000-f767b000 Deferred libuuid.so.1 ELF f7682000-f77c4000 Dwarf libwine.so.1 ELF f77c6000-f77e8000 Deferred ld-linux.so.2 ELF f77e8000-f77e9000 Deferred [vdso].so Threads: process tid prio (all id:s are in hex) 0000000e services.exe 0000001f 0 0000001e 0 00000015 0 00000010 0 0000000f 0 00000012 winedevice.exe 0000001c 0 00000019 0 00000014 0 00000013 0 0000001a plugplay.exe 00000020 0 0000001d 0 0000001b 0 00000037 explorer.exe 00000038 0 00000042 (D) C:\Program Files (x86)\Amazon\Kindle\Kindle.exe 00000043 0 <== System information: Wine build: wine-1.4 Platform: i386 (WOW64) Host system: Linux Host version: 3.8.11 How can this be fixed?

    Read the article

  • Working through exercises in "Cocoa Programming for Mac OS X" - I'm stumped

    - by Zigrivers
    I've been working through the exercises in a book recommended here on stackoverflow, however I've run into a problem and after three days of banging my head on the wall, I think I need some help. I'm working through the "Speakline" exercise where we add a TableView to the interface and the table will display the "voices" that you can choose for the text to speech aspect of the program. I am having two problems that I can't seem to get to the bottom of: I get the following error: * Illegal NSTableView data source (). Must implement numberOfRowsInTableView: and tableView:objectValueForTableColumn:row: The tableView that is supposed to display the voices comes up blank I have a feeling that both of these problems are related. I'm including my interface code here: #import <Cocoa/Cocoa.h> @interface AppController : NSObject <NSSpeechSynthesizerDelegate, NSTableViewDelegate> { IBOutlet NSTextField *textField; NSSpeechSynthesizer *speechSynth; IBOutlet NSButton *stopButton; IBOutlet NSButton *startButton; IBOutlet NSTableView *tableView; NSArray *voiceList; } - (IBAction)sayIt:(id)sender; - (IBAction)stopIt:(id)sender; @end And my implementation code here: #import "AppController.h" @implementation AppController - (id)init { [super init]; //Log to help me understand what is happening NSLog(@"init"); speechSynth = [[NSSpeechSynthesizer alloc] initWithVoice:nil]; [speechSynth setDelegate:self]; voiceList = [[NSSpeechSynthesizer availableVoices] retain]; return self; } - (IBAction)sayIt:(id)sender { NSString *string = [[textField stringValue] stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]; //Is the string zero-length? if([string length] == 0) { NSLog(@"String from %@ is a string with a length of %d.", textField, [string length]); [speechSynth startSpeakingString:@"Please enter a phrase first."]; } [speechSynth startSpeakingString:string]; NSLog(@"Started to say: %@", string); [stopButton setEnabled:YES]; [startButton setEnabled:NO]; } - (IBAction)stopIt:(id)sender { NSLog(@"Stopping..."); [speechSynth stopSpeaking]; } - (void) speechSynthesizer:(NSSpeechSynthesizer *)sender didFinishSpeaking:(BOOL)complete { NSLog(@"Complete = %d", complete); [stopButton setEnabled:NO]; [startButton setEnabled:YES]; } - (NSInteger)numberOfRowsInTableView:(NSTableView *)aTableView { return [voiceList count]; } - (id)tableView: (NSTableView *)tv objecValueForTableColumn: (NSTableColumn *)tableColumn row:(NSInteger)row { NSString *v = [voiceList objectAtIndex:row]; NSLog(@"v = %@",v); NSDictionary *dict = [NSSpeechSynthesizer attributesForVoice:v]; return [dict objectForKey:NSVoiceName]; } /* - (BOOL)respondsToSelector:(SEL)aSelector { NSString *methodName = NSStringFromSelector(aSelector); NSLog(@"respondsToSelector: %@", methodName); return [super respondsToSelector:aSelector]; } */ @end Hopefully, you guys can see something obvious that I've missed. Thank you!

    Read the article

  • Listing common SQL Code Smells.

    - by Phil Factor
    Once you’ve done a number of SQL Code-reviews, you’ll know those signs in the code that all might not be well. These ’Code Smells’ are coding styles that don’t directly cause a bug, but are indicators that all is not well with the code. . Kent Beck and Massimo Arnoldi seem to have coined the phrase in the "OnceAndOnlyOnce" page of www.C2.com, where Kent also said that code "wants to be simple". Bad Smells in Code was an essay by Kent Beck and Martin Fowler, published as Chapter 3 of the book ‘Refactoring: Improving the Design of Existing Code’ (ISBN 978-0201485677) Although there are generic code-smells, SQL has its own particular coding habits that will alert the programmer to the need to re-factor what has been written. See Exploring Smelly Code   and Code Deodorants for Code Smells by Nick Harrison for a grounding in Code Smells in C# I’ve always been tempted by the idea of automating a preliminary code-review for SQL. It would be so useful to trawl through code and pick up the various problems, much like the classic ‘Lint’ did for C, and how the Code Metrics plug-in for .NET Reflector by Jonathan 'Peli' de Halleux is used for finding Code Smells in .NET code. The problem is that few of the standard procedural code smells are relevant to SQL, and we need an agreed list of code smells. Merrilll Aldrich made a grand start last year in his blog Top 10 T-SQL Code Smells.However, I'd like to make a start by discovering if there is a general opinion amongst Database developers what the most important SQL Smells are. One can be a bit defensive about code smells. I will cheerfully write very long stored procedures, even though they are frowned on. I’ll use dynamic SQL occasionally. You can only use them as an aid for your own judgment and it is fine to ‘sign them off’ as being appropriate in particular circumstances. Also, whole classes of ‘code smells’ may be irrelevant for a particular database. The use of proprietary SQL, for example, is only a ‘code smell’ if there is a chance that the database will have to be ported to another RDBMS. The use of dynamic SQL is a risk only with certain security models. As the saying goes,  a CodeSmell is a hint of possible bad practice to a pragmatist, but a sure sign of bad practice to a purist. Plamen Ratchev’s wonderful article Ten Common SQL Programming Mistakes lists some of these ‘code smells’ along with out-and-out mistakes, but there are more. The use of nested transactions, for example, isn’t entirely incorrect, even though the database engine ignores all but the outermost: but it does flag up the possibility that the programmer thinks that nested transactions are supported. If anything requires some sort of general agreement, the definition of code smells is one. I’m therefore going to make this Blog ‘dynamic, in that, if anyone twitters a suggestion with a #SQLCodeSmells tag (or sends me a twitter) I’ll update the list here. If you add a comment to the blog with a suggestion of what should be added or removed, I’ll do my best to oblige. In other words, I’ll try to keep this blog up to date. The name against each 'smell' is the name of the person who Twittered me, commented about or who has written about the 'smell'. it does not imply that they were the first ever to think of the smell! Use of deprecated syntax such as *= (Dave Howard) Denormalisation that requires the shredding of the contents of columns. (Merrill Aldrich) Contrived interfaces Use of deprecated datatypes such as TEXT/NTEXT (Dave Howard) Datatype mis-matches in predicates that rely on implicit conversion.(Plamen Ratchev) Using Correlated subqueries instead of a join   (Dave_Levy/ Plamen Ratchev) The use of Hints in queries, especially NOLOCK (Dave Howard /Mike Reigler) Few or No comments. Use of functions in a WHERE clause. (Anil Das) Overuse of scalar UDFs (Dave Howard, Plamen Ratchev) Excessive ‘overloading’ of routines. The use of Exec xp_cmdShell (Merrill Aldrich) Excessive use of brackets. (Dave Levy) Lack of the use of a semicolon to terminate statements Use of non-SARGable functions on indexed columns in predicates (Plamen Ratchev) Duplicated code, or strikingly similar code. Misuse of SELECT * (Plamen Ratchev) Overuse of Cursors (Everyone. Special mention to Dave Levy & Adrian Hills) Overuse of CLR routines when not necessary (Sam Stange) Same column name in different tables with different datatypes. (Ian Stirk) Use of ‘broken’ functions such as ‘ISNUMERIC’ without additional checks. Excessive use of the WHILE loop (Merrill Aldrich) INSERT ... EXEC (Merrill Aldrich) The use of stored procedures where a view is sufficient (Merrill Aldrich) Not using two-part object names (Merrill Aldrich) Using INSERT INTO without specifying the columns and their order (Merrill Aldrich) Full outer joins even when they are not needed. (Plamen Ratchev) Huge stored procedures (hundreds/thousands of lines). Stored procedures that can produce different columns, or order of columns in their results, depending on the inputs. Code that is never used. Complex and nested conditionals WHILE (not done) loops without an error exit. Variable name same as the Datatype Vague identifiers. Storing complex data  or list in a character map, bitmap or XML field User procedures with sp_ prefix (Aaron Bertrand)Views that reference views that reference views that reference views (Aaron Bertrand) Inappropriate use of sql_variant (Neil Hambly) Errors with identity scope using SCOPE_IDENTITY @@IDENTITY or IDENT_CURRENT (Neil Hambly, Aaron Bertrand) Schemas that involve multiple dated copies of the same table instead of partitions (Matt Whitfield-Atlantis UK) Scalar UDFs that do data lookups (poor man's join) (Matt Whitfield-Atlantis UK) Code that allows SQL Injection (Mladen Prajdic) Tables without clustered indexes (Matt Whitfield-Atlantis UK) Use of "SELECT DISTINCT" to mask a join problem (Nick Harrison) Multiple stored procedures with nearly identical implementation. (Nick Harrison) Excessive column aliasing may point to a problem or it could be a mapping implementation. (Nick Harrison) Joining "too many" tables in a query. (Nick Harrison) Stored procedure returning more than one record set. (Nick Harrison) A NOT LIKE condition (Nick Harrison) excessive "OR" conditions. (Nick Harrison) User procedures with sp_ prefix (Aaron Bertrand) Views that reference views that reference views that reference views (Aaron Bertrand) sp_OACreate or anything related to it (Bill Fellows) Prefixing names with tbl_, vw_, fn_, and usp_ ('tibbling') (Jeremiah Peschka) Aliases that go a,b,c,d,e... (Dave Levy/Diane McNurlan) Overweight Queries (e.g. 4 inner joins, 8 left joins, 4 derived tables, 10 subqueries, 8 clustered GUIDs, 2 UDFs, 6 case statements = 1 query) (Robert L Davis) Order by 3,2 (Dave Levy) MultiStatement Table functions which are then filtered 'Sel * from Udf() where Udf.Col = Something' (Dave Ballantyne) running a SQL 2008 system in SQL 2000 compatibility mode(John Stafford)

    Read the article

  • upload video to youtube via iphone application ----ServiceForbiddenException

    - by user577670
    Hey,I use GData try to upload my video to youtube, but meet these error: serviceBase:<GDataServiceGoogleYouTube: 0x2435f0> objectFetcher:<GDataHTTPUploadFetcher: 0x26dca0> failedWithStatus:403 data:<errors xmlns='http://schemas.google.com/g/2005'> <error> <domain>GData</domain> <code>ServiceForbiddenException</code> <internalReason>Currently authenticated user does not have write access to desrender&apos;s videos.</internalReason> </error> </errors> * is my youtube account. Following is the code: - (GDataServiceGoogleYouTube *)youTubeService { static GDataServiceGoogleYouTube* service = nil; if (!service) { service = [[GDataServiceGoogleYouTube alloc] init]; [service setShouldCacheDatedData:YES]; [service setServiceShouldFollowNextLinks:YES]; [service setIsServiceRetryEnabled:YES]; } // update the username/password each time the service is requested NSString *username = [mUsernameField text]; NSString *password = [mPasswordField text]; if ([username length] > 0 && [password length] > 0) { [service setUserCredentialsWithUsername:username password:password]; } else { // fetch unauthenticated [service setUserCredentialsWithUsername:nil password:nil]; } NSString *devKey = [mDeveloperKeyField text]; [service setYouTubeDeveloperKey:devKey]; return service; } - (IBAction)uploadPressed:(id)sender { NSString *devKey = [mDeveloperKeyField text]; GDataServiceGoogleYouTube *service = [self youTubeService]; [service setYouTubeDeveloperKey:devKey]; NSString *username = [mUsernameField text]; NSString *clientID = [mClientIDField text]; NSURL *url = [GDataServiceGoogleYouTube youTubeUploadURLForUserID:username clientID:clientID]; // load the file data NSString *path = [[NSBundle mainBundle] pathForResource:@"YouTubeTest" ofType:@"m4v"]; NSData *data = [NSData dataWithContentsOfFile:path]; NSString *filename = [path lastPathComponent]; // gather all the metadata needed for the mediaGroup NSString *titleStr = [mTitleField text]; GDataMediaTitle *title = [GDataMediaTitle textConstructWithString:titleStr]; NSString *categoryStr = [mCategoryField text]; GDataMediaCategory *category = [GDataMediaCategory mediaCategoryWithString:categoryStr]; [category setScheme:kGDataSchemeYouTubeCategory]; NSString *descStr = [mDescriptionField text]; GDataMediaDescription *desc = [GDataMediaDescription textConstructWithString:descStr]; NSString *keywordsStr = [mKeywordsField text]; GDataMediaKeywords *keywords = [GDataMediaKeywords keywordsWithString:keywordsStr]; BOOL isPrivate = mIsPrivate; GDataYouTubeMediaGroup *mediaGroup = [GDataYouTubeMediaGroup mediaGroup]; [mediaGroup setMediaTitle:title]; [mediaGroup setMediaDescription:desc]; [mediaGroup addMediaCategory:category]; [mediaGroup setMediaKeywords:keywords]; [mediaGroup setIsPrivate:isPrivate]; NSString *mimeType = [GDataUtilities MIMETypeForFileAtPath:path defaultMIMEType:@"video/mp4"]; // create the upload entry with the mediaGroup and the file data GDataEntryYouTubeUpload *entry; entry = [GDataEntryYouTubeUpload uploadEntryWithMediaGroup:mediaGroup data:data MIMEType:mimeType slug:filename]; SEL progressSel = @selector(ticket:hasDeliveredByteCount:ofTotalByteCount:); [service setServiceUploadProgressSelector:progressSel]; GDataServiceTicket *ticket; ticket = [service fetchEntryByInsertingEntry:entry forFeedURL:url delegate:self didFinishSelector:@selector(uploadTicket:finishedWithEntry:error:)]; [self setUploadTicket:ticket]; } It almost same as GData's YouTubeSample.. Someone help me!!!!

    Read the article

  • Javascript style objects in Objective-C

    - by awolf
    Background: I use a ton of NSDictionary objects in my iPhone and iPad code. I'm sick of the verbose way of getting/setting keys to these state dictionaries. So a little bit of an experiment: I just created a class I call Remap. Remap will take any arbitrary set[VariableName]:(NSObject *) obj selector and forward that message to a function that will insert obj into an internal NSMutableDictionary under the key [vairableName]. Remap will also take any (zero argument) arbitrary [variableName] selector and return the NSObject mapped in the NSMutableDictionary under the key [variableName]. e.g. Remap * remap = [[Remap alloc] init]; NSNumber * testNumber = [NSNumber numberWithInt:46]; [remap setTestNumber:testNumber]; testNumber = [remap testNumber]; [remap setTestString:@"test string"]; NSString * testString = [remap testString]; NSMutableDictionary * testDict = [NSMutableDictionary dictionaryWithObject:testNumber forKey:@"testNumber"]; [remap setTestDict:testDict]; testDict = [remap testDict]; where none of the properties testNumber, testString, or testDict are actually defined in Remap. The crazy thing? It works... My only question is how can I disable the "may not respond to " warnings for JUST accesses to Remap? P.S. : I'll probably end up scrapping this and going with macros since message forwarding is quite inefficient... but aside from that does anyone see other problems with Remap? Here's Remap's .m for those who are curious: #import "Remap.h" @interface Remap () @property (nonatomic, retain) NSMutableDictionary * _data; @end @implementation Remap @synthesize _data; - (void) dealloc { relnil(_data); [super dealloc]; } - (id) init { self = [super init]; if (self != nil) { NSMutableDictionary * dict = [[NSMutableDictionary alloc] init]; [self set_data:dict]; relnil(dict); } return self; } - (void)forwardInvocation:(NSInvocation *)anInvocation { NSString * selectorName = [NSString stringWithUTF8String: sel_getName([anInvocation selector])]; NSRange range = [selectorName rangeOfString:@"set"]; NSInteger numArguments = [[anInvocation methodSignature] numberOfArguments]; if (range.location == 0 && numArguments == 4) { //setter [anInvocation setSelector:@selector(setData:withKey:)]; [anInvocation setArgument:&selectorName atIndex:3]; [anInvocation invokeWithTarget:self]; } else if (numArguments == 3) { [anInvocation setSelector:@selector(getDataWithKey:)]; [anInvocation setArgument:&selectorName atIndex:2]; [anInvocation invokeWithTarget:self]; } } - (NSMethodSignature *) methodSignatureForSelector:(SEL) aSelector { NSString * selectorName = [NSString stringWithUTF8String: sel_getName(aSelector)]; NSMethodSignature * sig = [super methodSignatureForSelector:aSelector]; if (sig == nil) { NSRange range = [selectorName rangeOfString:@"set"]; if (range.location == 0) { sig = [self methodSignatureForSelector:@selector(setData:withKey:)]; } else { sig = [self methodSignatureForSelector:@selector(getDataWithKey:)]; } } return sig; } - (NSObject *) getDataWithKey: (NSString *) key { NSObject * returnValue = [[self _data] objectForKey:key]; return returnValue; } - (void) setData: (NSObject *) data withKey:(NSString *)key { if (key && [key length] >= 5 && data) { NSRange range; range.length = 1; range.location = 3; NSString * firstChar = [key substringWithRange:range]; firstChar = [firstChar lowercaseString]; range.length = [key length] - 5; // the 4 we have processed plus the training : range.location = 4; NSString * adjustedKey = [NSString stringWithFormat:@"%@%@", firstChar, [key substringWithRange:range]]; [[self _data] setObject:data forKey:adjustedKey]; } else { //assert? } } @end

    Read the article

  • Set Icon in Button LWUIT Java ME

    - by Muhamad Burhanudin
    Please help me, to set icon button : /* * To change this template, choose Tools | Templates * and open the template in the editor. */ package tajwed; import javax.microedition.midlet.*; import com.sun.lwuit.*; import com.sun.lwuit.animations.*; import com.sun.lwuit.events.*; import com.sun.lwuit.layouts.BoxLayout; import com.sun.lwuit.plaf.*; import java.io.IOException; import java.util.Hashtable; /** * @author Muhamad BUrhanudin */ public class tajwedMidlet extends MIDlet implements ActionListener{ Form mHomeForm; Form mAwayForm; Form mMenuTajwid; Command mExitCommand; Button btMenu; Button btNunSukun, btMimSukun, btNunTasjid; Button btLamtarif, btIdgham, btMaad, btRaa; Button btHelp; Button btExit; Command mBackCommand; public void startApp() { Display.init(this); installTheme(); createUI(); mHomeForm.show(); } public void pauseApp() { } public void destroyApp(boolean unconditional) { } public void actionPerformed(ActionEvent ae) { mAwayForm.setTransitionInAnimator( Transition3D.createCube(400, false)); mMenuTajwid.setTransitionInAnimator( Transition3D.createCube(400, false)); mMenuTajwid.setTransitionOutAnimator( Transition3D.createCube(400, true)); mAwayForm.setTransitionOutAnimator( Transition3D.createCube(400, true)); if ((ae.getSource()==btMenu)|| (ae.getSource()==btHelp)) { //mAwayForm.show(); if(ae.getSource()== btMenu) { mMenuTajwid.show(); } } else if (ae.getSource() == mBackCommand) { mHomeForm.show(); } else if ((ae.getCommand() == mExitCommand) || (ae.getSource()== btExit)) notifyDestroyed(); } private void installTheme() { UIManager uim = UIManager.getInstance(); Hashtable ht = new Hashtable(); ht.put("sel#" + Style.BG_COLOR, "ffffff"); ht.put(Style.BG_COLOR, "d5fff9"); ht.put(Style.FG_COLOR, "000000"); uim.setThemeProps(ht); } private void createUI() { // Set up screen for transitions. mAwayForm = new Form("Away"); mAwayForm.addComponent(new Label("Choose Back to return to the home screen.")); mMenuTajwid = new Form("MENU DASAR TAJWID"); // mMenuTajwid mMenuTajwid.setLayout(new BoxLayout(BoxLayout.Y_AXIS)); btNunSukun = new Button("Hukum Nun Sukun & Tanwin"); btNunSukun.addActionListener(this); mMenuTajwid.addComponent(btNunSukun); btMimSukun = new Button("Hukum Mim Sukun"); btMimSukun.addActionListener(this); mMenuTajwid.addComponent(btMimSukun); btNunTasjid = new Button("Hukum Nun Tasydid & Min Tasydid"); btNunTasjid.addActionListener(this); mMenuTajwid.addComponent(btNunTasjid); btLamtarif = new Button("Hukum Laam Ta'rief"); btLamtarif.addActionListener(this); mMenuTajwid.addComponent(btLamtarif); btIdgham = new Button("Idgham"); btIdgham.addActionListener(this); mMenuTajwid.addComponent(btIdgham); btMaad = new Button("Maad"); btMaad.addActionListener(this); mMenuTajwid.addComponent(btMaad); btRaa = new Button("Raa'"); btRaa.addActionListener(this); mMenuTajwid.addComponent(btRaa); mBackCommand = new Command("Back"); mMenuTajwid.addCommand(mBackCommand); mMenuTajwid.addCommandListener(this); // Use setCommandListener() with LWUIT 1.3 or earlier. // Set up main screen. mHomeForm = new Form("Java Mobile Learning"); mHomeForm.setLayout(new BoxLayout(BoxLayout.Y_AXIS)); btMenu = new Button("TAJWID LEARNING"); btMenu.addActionListener(this); mHomeForm.addComponent(btMenu); try { btHelp = new Button("HELP",Image.createImage("/help.ico")); btHelp.addActionListener(this); mHomeForm.addComponent(btHelp); } catch(IOException e) { } btExit = new Button("EXIT"); btExit.addActionListener(this); mHomeForm.addComponent(btExit); mExitCommand = new Command("Keluar"); mHomeForm.addCommand(mExitCommand); mHomeForm.addCommandListener(this); // Use setCommandListener() with LWUIT 1.3 or earlier. } }

    Read the article

  • how to display the below xml in the flex datagrid

    - by Kishore
    <rows> - <row rowno="1"> - <row-value> <colno>1</colno> <value>1</value> </row-value> - <row-value> <colno>2</colno> <value>sel</value> </row-value> - <row-value> <colno>3</colno> <value>select * from qt_query</value> </row-value> - <row-value> <colno>4</colno> <value>kishore</value> </row-value> - <row-value> <colno>5</colno> <value>2009-04-10 00:00:00.0</value> </row-value> - <row-value> <colno>6</colno> </row-value> - <row-value> <colno>7</colno> </row-value> </row> - <row rowno="2"> - <row-value> <colno>1</colno> <value>2</value> </row-value> - <row-value> <colno>2</colno> <value>sel12345</value> </row-value> - <row-value> <colno>3</colno> <value>select * from qt_query</value> </row-value> - <row-value> <colno>4</colno> <value>kishore</value> </row-value> - <row-value> <colno>5</colno> <value>2009-04-10 00:00:00.0</value> </row-value> - <row-value> <colno>6</colno> <value>krajkumard</value> </row-value> - <row-value> <colno>7</colno> <value>2010-05-21 00:00:00.0</value> </row-value> </row> - <row rowno="3"> - <row-value> <colno>1</colno> <value>3</value> </row-value> - <row-value> <colno>2</colno> <value>sele123</value> </row-value> - <row-value> <colno>3</colno> - <value> select * from cache where %2scache_name% = ? and %1icache_type% = ? </value> </row-value> - <row-value> <colno>4</colno> <value>krajkumard</value> </row-value> - <row-value> <colno>5</colno> <value>2010-05-21 00:00:00.0</value> </row-value> - <row-value> <colno>6</colno> </row-value> - <row-value> <colno>7</colno> </row-value> </row> - <row rowno="4"> - <row-value> <colno>1</colno> <value>4</value> </row-value> - <row-value> <colno>2</colno> <value>upd</value> </row-value> - <row-value> <colno>3</colno> <value>select * from qt_qtool where %sname=?%</value> </row-value> - <row-value> <colno>4</colno> <value>krajkumard</value> </row-value> - <row-value> <colno>5</colno> <value>2010-05-31 00:00:00.0</value> </row-value> - <row-value> <colno>6</colno> </row-value> - <row-value> <colno>7</colno> <value>2010-06-07 00:00:00.0</value> </row-value> </row> - <row rowno="5"> - <row-value> <colno>1</colno> <value>5</value> </row-value> - <row-value> <colno>2</colno> <value>Pron_errors</value> </row-value> - <row-value> <colno>3</colno> <value>select * from proanalyzer_errors</value> </row-value> - <row-value> <colno>4</colno> <value>tjothy</value> </row-value> - <row-value> <colno>5</colno> <value>2010-06-07 00:00:00.0</value> </row-value> - <row-value> <colno>6</colno> </row-value> - <row-value> <colno>7</colno> </row-value> </row> </rows>

    Read the article

  • Solving the EXC_BAD_ACCESS in WhatATool Part 2

    - by Allen
    #import <Cocoa/Cocoa.h> @interface PolygonShape : NSObject { int numberOfSides, maximumNumberOfSides, minimumNumberOfSides; } @property (readwrite) int numberOfSides, maximumNumberOfSides, minimumNumberOfSides; @property (readonly) float angleInDegrees, angleInRadians; @property (readonly) NSString * name; @property (readonly) NSString * description; -(id) init; -(void) setNumberOfSides:(int)sides; -(void) setMinimumNumberOfSides:(int)min; -(void) setMaximumNumberOfSides:(int)max; -(float) angleInDegrees; -(float) angleInRadians; -(NSString *) name; -(id) initWithNumberOfSides:(int) sides minimumNumberOfSides:(int) min maximumNumberOfSides:(int) max; -(NSString *) description; -(void) dealloc; @end #import "PolygonShape.h" @implementation PolygonShape -(id) init { return [self initWithNumberOfSides:4 minimumNumberOfSides:3 maximumNumberOfSides:5]; } @synthesize numberOfSides, minimumNumberOfSides, maximumNumberOfSides, angleInRadians; -(void) setNumberOfSides:(int)sides { numberOfSides = sides; NSLog(@"The number of sides is off limit so the number of sides is %@.",sides); } -(void)setMaximumNumberOfSides:(int)max { if (maximumNumberOfSides <= 12) { maximumNumberOfSides = max; } } -(void)setMinimumNumberOfSides: (int)min { if (minimumNumberOfSides > 2) { minimumNumberOfSides = min; } } - (id)initWithNumberOfSides:(int)sides minimumNumberOfSides:(int)min maximumNumberOfSides:(int)max { if(self=[super init]) { [self setNumberOfSides:(int)sides]; [self setMaximumNumberOfSides:(int)max]; [self setMinimumNumberOfSides: (int)min]; } return self; } -(float) angleInDegrees { float anglesInDegrees = (180 * (numberOfSides - 2) / numberOfSides); return anglesInDegrees; } -(float)angleInRadiants { float anglesInRadiants = ((180 * (numberOfSides - 2) / numberOfSides) * (180 / M_PI)); return anglesInRadiants; } -(NSString *)name { NSString * output; switch (numberOfSides) { case 3: output = @"Triangle"; break; case 4: output = @"Square"; break; case 5: output = @"Pentagon"; break; case 6: output = @"Hexagon"; break; case 7: output = @"Heptagon"; break; case 8: output = @"Octagon"; break; case 9: output = @"Nonagon"; break; case 10: output = @"Decagon"; break; case 11: output = @"Hendecagon"; break; case 12: output = @"Dodecabgon"; break; default: output = @"Invalid number of sides: %i is greater than maximum of five allowed."; } return output; } -(NSString *)description { NSString * output; NSLog(@"Hello I am a %i-sided polygon (aka a %@) with angles of %f degrees (%f radians).", numberOfSides, output, [self angleInDegrees], [self angleInRadiants]); return [self description]; } -(void)dealloc { [super dealloc]; } @end #import <Foundation/Foundation.h> #import "PolygonShape.h" void PrintPathInfo() { NSLog(@"Section 1"); NSLog(@"--------------------"); NSString *path = [@"~" stringByExpandingTildeInPath]; NSLog(@"My home folder is at '%@'.", path); NSArray *pathComponent = [path pathComponents]; for (path in pathComponent) { NSLog(@"%@",path); } NSLog(@"--------------------"); NSLog(@"\n"); } void PrintProcessInfo() { NSLog(@"Section 2"); NSLog(@"--------------------"); NSString * processName = [[NSProcessInfo processInfo] processName]; int processIdentifier = [[NSProcessInfo processInfo] processIdentifier]; NSLog(@"Process Name: '%@', Process ID: '%i'", processName, processIdentifier); NSLog(@"--------------------"); NSLog(@"\n"); } void PrintBookmarkInfo() { NSLog(@"Section 3"); NSLog(@"--------------------"); NSArray * keys = [NSArray arrayWithObjects: @"Stanford University", @"Apple", @"CS193P", @"Stanford on iTunes U", @"Stanford Mall", nil]; NSArray * objects = [NSArray arrayWithObjects: [NSURL URLWithString: @"http://www.stanford.edu"], @"http://www.apple.com", @"http://cs193p.stanford.edu", @"http://itunes.stanford.edu", @"http://stanfordshop.com",nil]; NSMutableDictionary * dictionary = [NSMutableDictionary dictionaryWithObjects:objects forKeys:keys]; NSEnumerator * enumerator = [keys objectEnumerator]; for (id keys in dictionary) { NSLog(@"key: '%@', value: '%@'", keys, [dictionary objectForKey:keys]); } NSLog(@" "); NSLog(@"These are the ones that has the prefix 'Stanford'."); NSLog(@" "); id object; while (object = [enumerator nextObject]) { if ([object hasPrefix: @"Stanford"]) { NSLog(@"key: '%@', value: '%@'", object, [dictionary objectForKey:object]); } } NSLog(@"--------------------"); NSLog(@"\n"); } void PrintIntrospectionInfo() { NSLog(@"Section 4"); NSLog(@"--------------------"); SEL lowercase = @selector (lowercaseString); NSMutableArray * array = [NSMutableArray array]; [array addObject: [NSString stringWithString: @"Here is a string"]]; [array addObject: [NSDictionary dictionary]]; [array addObject: [NSURL URLWithString: @"http://www.stanford.edu"]]; [array addObject: [[NSProcessInfo processInfo]processName]]; for (id keys in array) { NSLog(@"\n"); NSLog(@"Class Name: %@", [keys className]); NSLog(@"Is Member of NSString: %@", [keys isMemberOfClass:[NSString class]]?@"Yes":@"No"); NSLog(@"Is Kind of NSString: %@", [keys isKindOfClass:[NSString class]]?@"Yes":@"No"); if ([keys respondsToSelector: lowercase]==YES) { NSLog(@"Responds to lowercaseString: %@",[keys respondsToSelector: lowercase]?@"Yes":@"No"); NSLog(@"lowercaseString is: %@", [keys performSelector: lowercase]); } else { NSLog(@"Responds to lowercaseString: %@",[keys respondsToSelector: lowercase]?@"Yes":@"No" ); } } NSLog(@"--------------------"); } void PrintPolygonInfo() { NSMutableArray * array = [NSMutableArray array]; PolygonShape * polygon1 = [[PolygonShape alloc]initWithNumberOfSides:4 minimumNumberOfSides:3 maximumNumberOfSides:7]; [array addObject:polygon1]; [array description]; PolygonShape * polygon2 = [[PolygonShape alloc]initWithNumberOfSides:6 minimumNumberOfSides:5 maximumNumberOfSides:9]; [array addObject:polygon2]; [array description]; PolygonShape * polygon3 = [[PolygonShape alloc]initWithNumberOfSides:12 minimumNumberOfSides:9 maximumNumberOfSides:12]; [array addObject:polygon3]; [array description]; [array release]; [polygon1 release]; [polygon2 release]; [polygon3 release]; } int main (int argc, const char * argv[]) { NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; PrintPathInfo(); PrintProcessInfo(); PrintBookmarkInfo(); PrintIntrospectionInfo(); PrintPolygonInfo(); [pool release]; return 0; } //The result was "EXC_BAD_ACCESS", but I couldn't figure out how to resolve this problem.

    Read the article

< Previous Page | 3 4 5 6 7