标签: nsstring

NSString基础知识 - 内存 - 保留 - 复制

这是我的代码:

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]吗?

现在,如何从内存中删除所有这三个字符串?

iphone memory-management objective-c nsstring

2
推荐指数
1
解决办法
922
查看次数

为Core Data属性设置键入强制转换

我正在尝试设置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?

任何帮助赞赏// :)

attributes casting core-data nsnumber nsstring

2
推荐指数
1
解决办法
1102
查看次数

UIButton头衔的Breakline

在下面的按钮是显示的地址.我的问题是地址很长,我怎么能在按钮标题中的两个变量之间得到一个断裂线?

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之间?

谢谢你的帮忙

iphone uibutton nsstring

2
推荐指数
1
解决办法
3596
查看次数

访问NSString时,iPhone应用程序会随机退出

我的应用程序中有一个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)

memory iphone crash objective-c nsstring

2
推荐指数
2
解决办法
981
查看次数

在两个已知字符串之间搜索字符串

我有一个包含以下内容的字符串:

href="http://www.website.com/" /> [...] [...]
Run Code Online (Sandbox Code Playgroud)

我只是想得到字符串的中心部分.怎么可能得到@"href =""和@""/>之间的部分"

注意:即使它看起来像xml-code,它也在NSString中.

objective-c nsstring

2
推荐指数
1
解决办法
7795
查看次数

我可以将NSString分隔多于1个分隔符吗?

我想用空格,逗号,句点(即标点符号)分隔我的字符串.我在用:

[myString componentsSeparatedByString:@" "];
Run Code Online (Sandbox Code Playgroud)

用空格分隔,但也需要能够通过标点分割.

iphone cocoa cocoa-touch objective-c nsstring

2
推荐指数
1
解决办法
3078
查看次数

我应该在为其分配新值之前释放NSString吗?

请给我一些关于如何更改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.movi​​eName release]),前一个块何时何地被释放?非常感谢你的帮助!

iphone xcode cocoa nsstring

2
推荐指数
1
解决办法
2794
查看次数

调用[myString release]不会减少[myString retainCount]

我有以下情况,这似乎导致我的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)

这怎么可能?我在模拟器或设备上运行相同的结果.

iphone objective-c nsstring ipad

2
推荐指数
1
解决办法
467
查看次数

不区分大小写比较字符串串

将NSString与一组不区分大小写的其他字符串进行比较的最佳方法是什么?如果它是其中一个字符串,则该方法应返回YES,否则返回NO.

compare objective-c case-insensitive nsstring ios

2
推荐指数
1
解决办法
1万
查看次数

objective-c字符串操作

我有一个字符串"AA - 人的头衔"

我怎样才能在' - '之前获得该部分?

输出应为"AA"

此外,如果输入没有' - ',则输出应为零

objective-c nsstring

2
推荐指数
1
解决办法
728
查看次数