财产申报中的含义atomic和nonatomic含义是什么?
@property(nonatomic, retain) UITextField *userName;
@property(atomic, retain) UITextField *userName;
@property(retain) UITextField *userName;
Run Code Online (Sandbox Code Playgroud)
这三者之间的运作区别是什么?
使用iOS SDK:
我有一个UIView带有UITextField键盘的s.我需要它能够:
UIScrollView一旦键盘出现,允许滚动内容以查看其他文本字段
自动"跳跃"(通过向上滚动)或缩短
我知道我需要一个UIScrollView.我已经尝试将我的类更改UIView为a UIScrollView但我仍然无法向上或向下滚动文本框.
我需要a UIView和a UIScrollView吗?一个进去另一个吗?
需要实现什么才能自动滚动到活动文本字段?
理想情况下,尽可能多的组件设置将在Interface Builder中完成.我只想编写需要它的代码.
注意:我正在使用的UIView(或UIScrollView)是由tabbar(UITabBar)启动的,它需要正常运行.
编辑:我正在添加滚动条,仅用于键盘出现时.即使它不需要,我觉得它提供了更好的界面,因为用户可以滚动和更改文本框.
我已经让它工作,我改变UIScrollView了键盘上下的框架大小.我只是使用:
-(void)textFieldDidBeginEditing:(UITextField *)textField {
//Keyboard becomes visible
scrollView.frame = CGRectMake(scrollView.frame.origin.x,
scrollView.frame.origin.y,
scrollView.frame.size.width,
scrollView.frame.size.height - 215 + 50); //resize
}
-(void)textFieldDidEndEditing:(UITextField *)textField {
//keyboard will hide
scrollView.frame = CGRectMake(scrollView.frame.origin.x,
scrollView.frame.origin.y,
scrollView.frame.size.width,
scrollView.frame.size.height + 215 - 50); //resize
}
Run Code Online (Sandbox Code Playgroud)
但是,这不会自动"向上移动"或将可见区域中的下部文本字段居中,这是我真正想要的.
我是iOS和Objective-C以及整个MVC范例的新手,我坚持以下内容:
我有一个视图作为数据输入表单,我想让用户选择多个产品.产品列在另一个带有a的视图中,UITableViewController我启用了多个选择.
我的问题是,如何将数据从一个视图传输到另一个视图?我将UITableView在数组中保留选择,但是如何将其传递回上一个数据输入表单视图,以便在提交表单时将其与其他数据一起保存到Core Data?
我已经四处浏览并看到一些人在app delegate中声明了一个数组.我读了一些关于单身人士的事情,但不明白这些是什么,我读了一些关于创建数据模型的内容.
执行此操作的正确方法是什么?我将如何进行此操作?
model-view-controller objective-c uiviewcontroller ios swift
我在我的项目中成功使用ARC.但是,我遇到了一些文件(例如,在单元测试和模拟对象中),其中ARC的规则现在更加脆弱.我记得听说有一种方法可以在每个文件的基础上禁用ARC,但我无法找到这个选项.
这可能吗?如何基于每个文件禁用ARC?
xcode objective-c automatic-ref-counting manual-retain-release
我想做的事情似乎很简单,但我在网上找不到任何答案.我有一个NSMutableArray对象,让我们说它们是'人'对象.我想NSMutableArray按Person.birthDate 排序,这是一个NSDate.
我认为这与这个方法有关:
NSArray *sortedArray = [drinkDetails sortedArrayUsingSelector:@selector(???)];
Run Code Online (Sandbox Code Playgroud)
在Java中,我会使我的对象实现Comparable,或者使用带有内联自定义比较器的Collections.sort ...你到底如何在Objective-C中执行此操作?
ARC编译器收到以下警告:
"performSelector may cause a leak because its selector is unknown".
Run Code Online (Sandbox Code Playgroud)
这是我正在做的事情:
[_controller performSelector:NSSelectorFromString(@"someMethod")];
Run Code Online (Sandbox Code Playgroud)
为什么我会收到此警告?我理解编译器无法检查选择器是否存在,但为什么会导致泄漏?我怎样才能更改我的代码,以便我不再收到此警告?
如何检查string(NSString)是否包含另一个较小的字符串?
我希望有类似的东西:
NSString *string = @"hello bla bla";
NSLog(@"%d",[string containsSubstring:@"hello"]);
Run Code Online (Sandbox Code Playgroud)
但我能找到的最接近的是:
if ([string rangeOfString:@"hello"] == 0) {
NSLog(@"sub string doesnt exist");
}
else {
NSLog(@"exists");
}
Run Code Online (Sandbox Code Playgroud)
无论如何,这是查找字符串是否包含另一个字符串的最佳方法吗?
stringByAppendingString:Objective-C中是否存在()字符串连接的快捷方式,或者NSString通常使用的快捷方式?
例如,我想做:
NSString *myString = @"This";
NSString *test = [myString stringByAppendingString:@" is just a test"];
Run Code Online (Sandbox Code Playgroud)
更像是:
string myString = "This";
string test = myString + " is just a test";
Run Code Online (Sandbox Code Playgroud) 我不认为我从根本上理解它enum是什么,何时使用它.
例如:
typedef enum {
kCircle,
kRectangle,
kOblateSpheroid
} ShapeType;
Run Code Online (Sandbox Code Playgroud)
这里真的被宣布了什么?
我正在开发一个Cocoa应用程序,并且我使用常量NSStrings作为存储我的首选项的键名的方法.
我知道这是一个好主意,因为它可以在必要时轻松更改密钥.此外,它是整个'将您的数据与逻辑分离'的概念.
无论如何,是否有一种很好的方法可以为整个应用程序定义一次这些常量?我确信这是一种简单而聪明的方式,但是现在我的课程只是重新定义了他们使用的课程.
objective-c ×10
ios ×6
atomic ×1
cocoa ×1
cocoa-touch ×1
constants ×1
enums ×1
memory-leaks ×1
nonatomic ×1
nsstring ×1
properties ×1
range ×1
sorting ×1
string ×1
substring ×1
swift ×1
typedef ×1
uikeyboard ×1
uiscrollview ×1
uitextfield ×1
xcode ×1