快问.如果NSString包含某个子字符串,我需要拆分它.有人能告诉我一个如何做到这一点的例子吗?
// good string
string = RESULT: 123.23
// bad string (has no result prefix)
string = asldkfjasdlkfj
if( string has "RESULT: " in it )
{
string2 = (something that returns the 123.23 part)
}
Run Code Online (Sandbox Code Playgroud)
非常感谢!
我在Windows中运行Shell-Objective/C/Cocoa,而不是在Mac OS X上运行.
我想在单击按钮时在文本字段中附加一个包含现有字符串的字符串.我在窗口中创建了一个按钮,但是当我单击该按钮时,我不知道如何附加字符串.
单击该按钮时,如何将字符串附加到文本字段?
在控制台应用程序中,通常有一个主文件,您可以在其中键入您希望程序执行的操作.在事件驱动的GUI程序中,您有每个函数的事件处理程序(例如在Visual C#Windows窗体中).
在Cocoa GUI应用程序中,我没有看到可以创建变量和运行命令的集中位置.例如,我可以创建一个新类并定义其所有成员函数和数据,但我没有地方实际创建该类的新对象.我在哪里放置"实际程序"?我找不到一个文件,程序的所有部分都放在一起,我似乎只能定义类.存在一个主文件和函数,但它们不应该被使用 - main()
只需启动应用程序.
这是如何运作的?我在哪里放我的程序代码?
NSArray *objects = ... // array of objects with a coordinate
unsigned int count = [objects count];
NSMutableData *data = [NSMutableData dataWithLength:count*sizeof(NSPoint)];
NSPoint *points = (NSPoint*)[data bytes];
unsigned int i;
[data retain];
for (i=0; i<[objects count]; i++) {
points[i] = [[objects objectAtIndex:i] coordinate];
}
[data release];
Run Code Online (Sandbox Code Playgroud)
这段代码在做什么?
它为什么会成倍增加count*sizeof(nspoint)
?
什么是NSPoint
结构?
经过一些谷歌搜索,现在我可以使用自定义字体.像这样:
[loginButton.titleLabel setFont:[UIFont fontWithName:@"OpenSans-Bold" size:15]];
Run Code Online (Sandbox Code Playgroud)
您无法在界面构建中选择自定义字体,因此您需要反复编写代码
我的问题是:如何将应用程序默认字体更改为自定义字体
当使用NSMutableArray中的新值替换某个索引处的值时,旧值将保留在内存中.修复的方法是在每个循环之前初始化一个新的NSMutableArray.
重现步骤:
- (id) init{
self.overlays = [[NSMutableArray alloc] initWithCapacity: [self.anotherArray count]];
}
- (void) someOtherMethod{
for(int i = 0 ; i < self.anotherArray ; i++){
UIView *view = [[UIView alloc] initWithFrame:CGRectMake(x, y, width, height)];
[view setBackgroundColor:[UIColor colorWithRed:0
green:0
blue:0
alpha:1]];
[view setAlpha: .2];
[self.overlays insertObject:view atIndex: i]
}
}
- (void) main{
for(int i = 0 ; i < 4 ; i++){
[myObject someOtherMethod];
}
}
Run Code Online (Sandbox Code Playgroud)
insertObject:atIndex有效地导致内存泄漏,因为它不会释放该索引处的数组中的旧值.
我提交了一份错误报告,Apple回答说:
insertObject:atIndex:表现为已定义.它正在插入,而不是替代.如果要替换,则应使用-replaceObjectAtIndex:withObject:
insertObject:atIndex:怎么可能有任何好处,因为你总是丢失对该索引的旧对象的引用.
这是否只是为了避免修复问题,因为它符合旧的文档定义?
这是我的第一个Grand Central Dispatch代码,但它不起作用.使用Mac OS X 10.8和最新的Xcode版本.我知道这太基础了.谢谢.
#import <Foundation/Foundation.h>
#import <dispatch/dispatch.h>
void printResult(int r);
void printResult(int r)
{
NSLog(@"%i", r);
}
int main(int argc, const char * argv[])
{
@autoreleasepool {
dispatch_queue_t queue = dispatch_queue_create("myQueue", NULL);
dispatch_async(queue, ^{
int number = pow(2, 5);
dispatch_async(dispatch_get_main_queue(), ^{
printResult(number);
});
});
}
return 0;
}
Run Code Online (Sandbox Code Playgroud) 如何设置每1秒更新一些信息的操作?
我正在创建聊天(使用社交网络API),我必须检查新消息.
我试图了解以下四种情况的内存管理之间的区别:
@implementation ABC
-(void) fun1
{
ObjectA * obj1 = [[ObjectA alloc] init];
ObjectA * obj2 = obj1;
}
-(void) fun2
{
ObjectA * obj1 = [[ObjectA alloc] init];
ObjectA * obj2 = [obj1 retain];
}
-(void) fun3
{
ObjectA * obj1 = [[ObjectA alloc] init];
ObjectA * obj2 = [obj1 copy];
}
-(void) fun4
{
ObjectA * obj1 = [[ObjectA alloc] init];
ObjectA * obj2 = [obj1 mutableCopy];
}
@end
Run Code Online (Sandbox Code Playgroud)
我咨询过这个问题,但我仍然不清楚上述每个问题之间的区别.有人可以解释每个人做了什么,以及他们为什么不同?
当mac osx app运行时,它将创建一个数组,其中包含目录中所有文件的NSString名称和扩展名.但是,我想在将数据显示给用户之前从数组中的每个文件中删除文件扩展名,并将这些名称放在数组中.我怎么能做到这一点?
恩.picture.jpeg,image.jpeg和picture2.png到图片,图片和图片2
我正在使用 Cocoa 和 Xcode 为 OS X 制作一个应用程序,我想在 swift 中使用 alpha 更改 Windows 背景颜色。我不知道如何从代码中调用窗口以及如何使用 alpha 值设置其背景颜色。我怎样才能做到这一点?
这是我的应用程序委托类,具有层次结构:
似乎Objective C通过篮球跳跃使得看似简单的任务非常困难.
我只需要创建的字符串,序列image1.jpg
,image2.jpg
等等等等
即在一个循环中
var imgString:String='image'+i+'.jpg;
我假设最佳做法是使用NSMutableString
with appendString
方法?
我究竟做错了什么??
NSMutableString *imgString;
for(int i=1;i<=NUMIMAGES;i++){
imgString.appendString(@"image"+i+@".jpg");
}
Run Code Online (Sandbox Code Playgroud)
我收到以下错误
错误:请求成员'appendString'不是结构或联合
cocoa ×13
objective-c ×11
ios ×2
concurrency ×1
events ×1
ios5 ×1
iphone ×1
macos ×1
nsbundle ×1
nsobject ×1
nsstring ×1
nstableview ×1
nstimer ×1
nswindow ×1
swift ×1
uistoryboard ×1