I am working through the Stanford iPhone class and I can't figure out why I am getting a compiler warning. I assume I need to cast my object to NSString, but I get an error when I try to do so. The code runs and gives me the expected output, but the warning bothers me.
NSLog(@"lowerCaseString is: %@", [object lowercaseString]);
This runs with the warning: 'NSObject' may not respond to '-lowerCaseString'
NSLog(@"lowerCaseString is: %@", [(NSString)object lowercaseString]);
This throws an error: conversion to non-scalar type requested
I believe this will do what you need:
NSLog(@"lowerCaseString is: %@", [(NSString *)object lowercaseString]);
Note I just added a * to your second line of code to make a pointer to NSString.
Why is object declared as an NSObject if it's supposed to be an NSString? If you intend to call NSString methods on it, declare it as an NSString or leave it as an id. Then you won't get errors.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With