我想在我的UIAlertView的消息中添加字符串
-(void) errorState:(NSException *) exp
{
NSLog(@"Error State Blood Level3 %@",exp);
NSString * myString = (NSString*)exp;
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error" message:myString delegate:self cancelButtonTitle:@"Go to the main menu" otherButtonTitles:nil];
[alert show];
[alert release];
}
Run Code Online (Sandbox Code Playgroud)
但它会抛出
2010-07-15 12:48:34.721 kndFrameV02[7955:207] -[NSException isEqualToString:]: unrecognized selector sent to instance 0x707b2e0
2010-07-15 12:48:34.724 kndFrameV02[7955:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSException isEqualToString:]: unrecognized selector sent to instance 0x707b2e0'
Run Code Online (Sandbox Code Playgroud)
那么如何将字符串变量添加到UIAlertView的消息中呢?
Cocoa是否提供了一种内置方法来将密钥字符串转换为格式正确的set属性访问器?即"lineSpacing" -> setLineSpacing:
例如:
NSString * key = @"lineSpacing";
SEL selector = [key magicallyConvertIntoSetPropertyAccessor];
Run Code Online (Sandbox Code Playgroud)
甚至:
NSString * key = @"lineSpacing";
SEL selector = NSSelectorFromString([key toSetPropertyAccessor]);
Run Code Online (Sandbox Code Playgroud)
背景:
我正在研究一种方法,该方法将使用存储在字典中的属性值按名称设置许多属性.我无法使用,setObject:forKey因为我也将此方法用于内置类型的属性,如NSInteger和CGFloat.以下是我用于CGFloat的方法示例,用于说明:
- (void)setFloatProperty:(NSString *)key value:(CGFloat)value target:(id)object
{
NSString * setPropertyString = [NSString stringWithFormat:@"set%@",
[key capitalizedString]];
SEL selector = NSSelectorFromString(setPropertyString);
NSMethodSignature * signature = ...
NSInvocation * invocation = ...
CGFloat arg = value;
void * argument = &arg;
[invocation setArgument:argument atIndex:2];
[invocation invoke];
}
Run Code Online (Sandbox Code Playgroud)
此方法适用于"color"或"width"等单字属性,但在"lineSpacing"或"meaningOfLifeTheUniverseAndEverything"等多字属性上失败,因为该capitalize方法将所有后续字母设置为小写时将第一个字母大写.使用"lineSpacing"作为键调用上述方法会导致失败,因为正确的属性设置器将是 …
我有一个非常简单的问题.是否有内置的方法来缩短字符串?如果没有,有人可以提供在ObjC中这样做的例子吗?
例如:
ThisIsAVeryLongString
应该成为
ThisIsAV ...
它需要检查字符串是否超过一定数量的字符,以及它是否缩短.
这样的时间和我的Objective-C noobness表明.: - /
所以,我在日常工作中做的越多,它变得越复杂,我想知道是否有一个简单的方法来改变路径中文件名的名称.基本上,我想换@"/some/path/abc.txt到@"/some/path/xyz.txt-替换的文件名部分,但不改变其路径或分机.
谢谢!
我正在尝试设置UIDatePicker的日期,但我每个月都是"1月"(01).我尝试使用"MM"和"LL",但两者都不起作用.
我的代码:
-(void)viewDidLoad {
[super viewDidLoad];
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"YYYY-MM-DD"];;
NSDate *anyDate = [dateFormat dateFromString:@"2019-09-11"];
[datePicker setDate:anyDate];
[dateFormat release];
Run Code Online (Sandbox Code Playgroud)
}
提前致谢,
克劳迪奥
例如,假设我有一个NSString @"20O(2H,1H)19O",我希望所有的数字都是上标.是否有捷径可寻?
试图弄清楚如何在随机生成的数字前面添加零,并且数字的动态长度.例如,如果数字长度为10个字符,我可以将数字打印为stringWithFormat:@"%.10d",i
由于数字的长度可能比最大长度短,因此需要使用零来填充数字的最大长度以适合字符串.
- (void)method:(int)length{
int i = rand() % length;
NSLog (@"%@",[NSString stringWithFormat:@"%.'length'd",i]);
}
Run Code Online (Sandbox Code Playgroud) 我目前正在使用此代码在屏幕上放置一些文本
userOutput.text=@"";
Run Code Online (Sandbox Code Playgroud)
我希望能够在字符串中显示一个int变量,就像使用%d占位符在C中使用printf一样.我如何使用NSString执行此操作
嘿! 我想知道是否有任何方法可以检查字符串的第一个字母是否是NSString中的大写字母.类似的东西:
if ([[string substringToIndex:1] isCapitalLetter]) {
// CODE
}
Run Code Online (Sandbox Code Playgroud)
- 要么 -
if ([self isCapitalLetter:[string substringToIndex:1]]) {
// CODE
}
Run Code Online (Sandbox Code Playgroud) nsstring ×10
objective-c ×5
iphone ×3
cocoa ×2
accessor ×1
barcode ×1
custom-font ×1
fonts ×1
macos ×1
properties ×1
uialertview ×1
uidatepicker ×1