小编fuz*_*oat的帖子

定义NSMutableString?

我的理解是这两个都创建了一个NSMutableString,只有第一个由系统拥有,第二个由我拥有(即我需要释放它).是否有任何特殊原因我应该使用其中一个,从表面看它似乎更容易使用第一个?也是第一个更好的,因为它给编译器一个大小的感觉?

NSMutableString *newPath = [NSMutableString stringWithCapacity:42];
Run Code Online (Sandbox Code Playgroud)

要么

NSMutableString *newPath = [[NSMutableString alloc] init];
Run Code Online (Sandbox Code Playgroud)

编辑......还

我看到很多声明写在两行(即)

NSMutableString *newPath;
newPath = [NSMutableString stringWithCapacity:42];
Run Code Online (Sandbox Code Playgroud)

我个人更喜欢单行,这只是个人风格的另一个例子吗?

cocoa objective-c nsmutablestring

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

Xcode 3.2调试:看到字符串中的什么?

有没有人知道我需要添加到摘要字段的显示格式化程序,以显示NSArray中包含的NSString对象的内容?我已经为NSArray添加了以下格式化程序,以便显示其内容......

"{(int)[$VAR count]} objects {(NSString *)[(NSArray *)$VAR description]}:s"
Run Code Online (Sandbox Code Playgroud)

替代文字

我真的希望(0-6标记为红色)在"摘要"中显示如下:

0 =星期一

1 =星期二

2 =周三

3 =周四......等

加里

xcode

8
推荐指数
1
解决办法
1003
查看次数

NSKeyedArchiver保存的格式是什么?

当我使用NSKeyedArchiver是写入*.plist的数据时,我看到一些例子,人们将输出文件缩小为*.txt,甚至根本没有扩展名?

-(void)saveCore {
    NSMutableData *data = [[NSMutableData alloc] init];
    NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data];
    [archiver encodeObject:reactorCore forKey:@"CORE"];
    [archiver finishEncoding];
    [data writeToFile:[self dataFilePath] atomically:YES];

    [data release];
    [archiver release];
}
Run Code Online (Sandbox Code Playgroud)

加里

cocoa-touch objective-c nskeyedarchiver

8
推荐指数
1
解决办法
5459
查看次数

基础SDK和iOS开发目标?

我有一个最初使用iOS 3.1编写的应用程序上周我通过iTunes Connect对应用程序进行了更新,但错误地将"Base SDK"和"iPhone OS部署目标"都设置为4.1我现在计划重新提交应用程序"基础SDK:4.1"和"iPhone OS部署目标:3.1"

我的问题是:因为它当前发布的两个值都设置为4.1,这意味着应用程序将只在4.1上运行,虽然我猜它会在4.1以后的任何时候运行?N/B:应用程序与3.1完全兼容(即它不使用任何4.0功能)

我对这两个选项的理解是: "Base SDK"是iOS所需功能的最新版本号."iPhone OS部署目标"是您将支持的最早的iOS版本号

iphone

8
推荐指数
1
解决办法
5167
查看次数

在块中施放零

今天我只是快速玩积木,我遇到了错误:

NSString *(^testBlock)(int) = ^(int option) {
    if (option == 1) return @"ONE";
    if (option == 2) return @"TWO";
    return nil;
};
NSLog(@"OUTPUT: %@", testBlock(4));
Run Code Online (Sandbox Code Playgroud)
Return type 'void *' must match previous return type 'NSString *' when block literal has unspecified explicit return type
Run Code Online (Sandbox Code Playgroud)

因为我真的想要返回nil,如果没有输入"1"或"2",我决定简单地使用以下命令将最终返回值转换回NSString:

NSString *(^testBlock)(int) = ^(int option) {
    if (option == 1) return @"ONE";
    if (option == 2) return @"TWO";
    return (NSString *) nil;
};
Run Code Online (Sandbox Code Playgroud)

这很好用,我只是好奇,如果这是正确的解决方案,甚至是不好的练习,因为我从来没有考虑过铸造零呢?

iphone cocoa-touch objective-c objective-c-blocks

8
推荐指数
1
解决办法
1020
查看次数

返回只是ClassName的描述?

类实例的默认描述返回"ClassName:0x105120".我如何修改下面的方法只返回"ClassName"?

// The code below just returns the address ...
- (NSString *)description {

 NSString *result;

 result = [NSString stringWithFormat:@"%p", self];
    return result;
}
Run Code Online (Sandbox Code Playgroud)

编辑:在这种情况下,这是正确的吗?虽然我明白如果我想将className作为NSString实际获取,我应该使用NSStringFromClass([self class])

- (id)init {
 NSLog(@"_init: %@", [self class]);
 [super init];
 return self;
}
Run Code Online (Sandbox Code Playgroud)

在此先感谢-gary-

objective-c nsstring

7
推荐指数
1
解决办法
3775
查看次数

好的,发布指针为零?

如果我在创建对象时创建一个包含两个对象指针(见下文)的新对象,则将指针设置为指向nil;

@interface rocketShip : NSObject {
    NSString *name; 
    NSNumber *thrust;
}
Run Code Online (Sandbox Code Playgroud)

如果(出于某些意外的原因)我没有分配这些指针,后来在我的dealloc方法中释放它们就好了,我很确定它是,只是想检查一下?

- (void)dealloc{
    [name release];
    name = nil;
    [thrust release];
    thrust = nil;
    [super dealloc];
}
Run Code Online (Sandbox Code Playgroud)

加里

cocoa objective-c

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

将结构输出到NSLog进行调试?

我只是很好奇,有没有办法通过NSLog打印结构的内容?

id <MKAnnotation> mp = [annotationView annotation];
MKCoordinateRegion region = 
MKCoordinateRegionMakeWithDistance([mp coordinate], 350, 350);
Run Code Online (Sandbox Code Playgroud)

我正在尝试输出什么[mp coordinate]进行调试.

.

EDIT_001:

我破解了它,除非有另一种方法.

CLLocationCoordinate2D location = [mp coordinate];
NSLog(@"LAT: %f LON: %f", location.latitude, location.longitude);
Run Code Online (Sandbox Code Playgroud)

iphone cocoa-touch objective-c

7
推荐指数
1
解决办法
4744
查看次数

UITableViewCell,删除按钮框架?

有没有办法改变使用的"滑动" [DELETE]按钮的框架UITableViewCells?目前它在细胞内垂直居中,但如果可能的话,我想将其移至青色指南展.

在此输入图像描述

iphone cocoa-touch objective-c uitableview

7
推荐指数
1
解决办法
4478
查看次数

在settings.bundle中指定不可编辑的字符串?

我注意到有些应用程序会在settings.bundle中添加条目,这些条目只代表一个固定/不可编辑的字符串.

在此输入图像描述

我只在列表中看到这些,并且唯一关闭的是"文本字段",但这是可编辑的.

在此输入图像描述

有没有办法在Root.plist中指定它?

iphone cocoa-touch objective-c

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