这是我的代码:
NSString *xyz=[NSString stringWithFormat:@"%i %@",10,@"Sagar"];
Run Code Online (Sandbox Code Playgroud)
现在我正在采取其他字符串,如下所示.
NSString *x2=[xyz copy];
Run Code Online (Sandbox Code Playgroud)
我不知道到底会发生什么?是这样的,x2有xyz的ref的参考吗?
NSString *x3=[xyz retain];
Run Code Online (Sandbox Code Playgroud)
这里会发生什么,x3有一个新的内存有复制的字符串或[xyz copy]吗?
现在,如何从内存中删除所有这三个字符串?
我正在尝试设置Core Data属性,但是我遇到了不兼容的类型错误.我在iPhone 3.0上的Core Data实体中有一个float属性.Core Data自动为托管数据对象生成一个接口,该对象提供对它的属性访问:
@property (nonatomic, retain) NSNumber * volume;
Run Code Online (Sandbox Code Playgroud)
并为其实施:
@dynamic volume;
Run Code Online (Sandbox Code Playgroud)
我创建了一个托管数据对象的实例,我称之为attrVolume,并使用它来通过Core Data托管对象上下文访问该Core数据实体属性:
[attrVolume setVolume:[txtVolume.text floatValue]];
Run Code Online (Sandbox Code Playgroud)
编译错误是:
'setVolume:'参数1的不兼容类型
任何想法如何转换该值而不是编译错误?有没有办法施放给NSNUmber?
任何帮助赞赏// :)
在下面的按钮是显示的地址.我的问题是地址很长,我怎么能在按钮标题中的两个变量之间得到一个断裂线?
NSString *sitz = map.kordinate.herkunft;
NSString *strasse = map.kordinate.strasse;
NSString *strasseMitKomma = [strasse stringByAppendingString:@","];
NSString *fertigesSitzFeld = [strasseMitKomma stringByAppendingString:sitz];
UIButton *firmensitz = [UIButton buttonWithType:UIButtonTypeRoundedRect];
Run Code Online (Sandbox Code Playgroud)
断裂线必须介于strasseMitKomma和sitz之间?
谢谢你的帮忙
我的应用程序中有一个NSString的问题.
我已经在我的视图控制器的头文件中定义了它.
NSString *locationCoordinates;
Run Code Online (Sandbox Code Playgroud)
我在一个 - (void)方法中设置它的值.
- (void)locationUpdate:(CLLocation *)location {
<...>
NSArray *locArray = [locString componentsSeparatedByString:@", "];
NSString *xCoordinate = [locArray objectAtIndex:0];
NSString *yCoordinate = [locArray objectAtIndex:1];
locationCoordinates = [NSString stringWithFormat:@"%@,%@", xCoordinate, yCoordinate];
}
Run Code Online (Sandbox Code Playgroud)
在这种方法中,我可以将其打印到控制台
NSLog(locationCoordinates);
Run Code Online (Sandbox Code Playgroud)
但如果我想在另一种方法中在控制台中查看它,我的应用程序会立即退出.
- (IBAction)saveAndReturnToRootView {
NSLog(locationCoordinates);
}
Run Code Online (Sandbox Code Playgroud)
控制台告诉我:
2010-02-24 14:45:05.399 MyApp[73365:207] *** -[NSCFSet length]: unrecognized selector sent to instance 0x4c36490
2010-02-24 14:45:05.400 MyApp[73365:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSCFSet length]: unrecognized selector sent to instance 0x4c36490'
2010-02-24 14:45:05.401 MyApp[73365:207] …Run Code Online (Sandbox Code Playgroud) 我有一个包含以下内容的字符串:
href="http://www.website.com/" /> [...] [...]
Run Code Online (Sandbox Code Playgroud)
我只是想得到字符串的中心部分.怎么可能得到@"href =""和@""/>之间的部分"
注意:即使它看起来像xml-code,它也在NSString中.
我想用空格,逗号,句点(即标点符号)分隔我的字符串.我在用:
[myString componentsSeparatedByString:@" "];
Run Code Online (Sandbox Code Playgroud)
用空格分隔,但也需要能够通过标点分割.
请给我一些关于如何更改NSString变量的建议.
在我的课上,我设置了一个成员var:
NSString *m_movieName;
...
@property(nonatomic, retain) NSString *m_movieName;
Run Code Online (Sandbox Code Playgroud)
在viewDidLoad方法中,我为此var指定了一个默认名称:
-(void)viewDidLoad{
NSString *s1 = [[NSString alloc] initWithFormat:@"Forrest Gump"];
self.m_movieName = s1;
...
[s1 release];
[super viewDidLoad]
}
Run Code Online (Sandbox Code Playgroud)
在某些功能,我想给这个var一个新的名字,所以我喜欢:
-(void)SomeFunc{
NSString *s2 = [[NSString alloc] initWithFormat:@"Brave Heart"];
//[self.movieName release]; // ??????? Should perform here?
self.m_moiveName = s2;
[s2 release];
}
Run Code Online (Sandbox Code Playgroud)
我知道,NSString*var只是指向已分配内存块的指针,'assign'操作将使用count递增此内存块.对于我的情况,我应该在为其分配值之前释放m_movieName吗?如果我不释放它(通过[self.movieName release]),前一个块何时何地被释放?非常感谢你的帮助!
我有以下情况,这似乎导致我的iPad应用程序泄漏内存.
我有一个字符串属性的类...
@property(nonatomic,retain) NSString * synopsis;
Run Code Online (Sandbox Code Playgroud)
我从一些HTTP响应中设置字符串属性,来自JSON或XML响应.
此时,概要对象的保留计数为1.
但我有这种情况:
我将概要保存到本地sqlite数据库,然后我想从内存中释放它,但我有一种奇怪的情况,[synopsis release]从我的对象内部调用不会将保留计数减少到0.
(void) save
{
NSLog(@"synopsis before save retainCount=%d",[synopsis retainCount]);
[self saveToDb:synopsis withKey:@"synopsis"];
NSLog(@"synopsis after save retainCount=%d",[synopsis retainCount]);
[synopsis release];
NSLog(@"synopsis after release retainCount=%d",[synopsis retainCount]);
synopsis=nil;
}
Run Code Online (Sandbox Code Playgroud)
在控制台中,我得到:
synopsis before save retainCount=1
synopsis after save retainCount=1
synopsis after release retainCount=1
Run Code Online (Sandbox Code Playgroud)
这怎么可能?我在模拟器或设备上运行相同的结果.
将NSString与一组不区分大小写的其他字符串进行比较的最佳方法是什么?如果它是其中一个字符串,则该方法应返回YES,否则返回NO.
我有一个字符串"AA - 人的头衔"
我怎样才能在' - '之前获得该部分?
输出应为"AA"
此外,如果输入没有' - ',则输出应为零