财产申报中的含义atomic和nonatomic含义是什么?
@property(nonatomic, retain) UITextField *userName;
@property(atomic, retain) UITextField *userName;
@property(retain) UITextField *userName;
Run Code Online (Sandbox Code Playgroud)
这三者之间的运作区别是什么?
我正在尝试创建init函数Swift并从中创建实例Objective-C.问题是我没有在Project-Swift.h文件中看到它,我在初始化时无法找到该功能.我有一个定义如下的函数:
public init(userId: Int!) {
self.init(style: UITableViewStyle.Plain)
self.userId = userId
}
Run Code Online (Sandbox Code Playgroud)
我甚至尝试过@objc(initWithUserId:),我再次遇到同样的错误.还有什么我想念的吗?如何让构造函数对Objective-C代码可见?
我为此阅读了以下内容:
所以我需要从Objective-C中的类方法调用一些实例方法...
示例:
+(id)barWithFoo:(NSFoo *) {
[self foo]; //Raises compiler warning.
}
-(void)foo {
//cool stuff
}
Run Code Online (Sandbox Code Playgroud)
所以我的问题; StackOverFlow是你如何在Objective-C中做这些事情的,我是OOP的新手,所以我是疯了,还是有办法做到这一点?
我是Objective-C的新手,但是从我所知道的关于switch语句的所有内容来看,下面的代码不应该打印任何内容,因为对我来说似乎应该有一个编译错误.但是打印出2.我不懂为什么.有人可以解释一下吗?
- (void) test {
int myVar = 2;
switch (myVar) {
case 1:
{
NSLog(@"result: %d", myVar);
break;
case 2:
{
NSLog(@"result: %d", myVar);
}
break;
}
}
}
Run Code Online (Sandbox Code Playgroud) UICollectionView我正在尝试在 viewController 中的a 以及其他 2 个 UI 元素中实现可访问性。
CollectionView 中有 3 个单元格(水平滚动),第二个单元格当前可见。
现在,我单击第一个 UI 元素,如果我通过辅助功能导航到 collectionView,那么它会将我带回到第一个单元格而不是第二个单元格(这是默认行为)。
如何以这样的方式实现它:当我通过可访问性从第一个 UI 元素导航到 colllcetionView 时,它会到达最后一个可见单元格(在本例中为第二个单元格)?
我有iOS应用程序的问题(我不是iOS开发人员,我负责该应用程序使用的API)和DELETE请求.
Api使用了204个响应,没有DELETE请求的内容,到目前为止,所有客户端应用程序都运行正常,没有任何问题.
问题是当使用NSUrlConnection时,所有这些DELETE请求要么处理超过60秒,要么因超时而失败.
此行为仅在iOS实现中可见,其他客户端在不到100毫秒内获得完全相同请求的响应.
这是常见的行为吗?有谁知道任何修复,希望不需要API重建?
创建以下代码只是为了模拟这种行为并在API开发团队方面复制问题,但问题是相同的(当然,访问令牌模糊,身份验证工作正常):
//
// ViewController.m
// NoteablesTest
#import "ViewController.h"
@interface ViewController ()
@property (weak, nonatomic) IBOutlet UILabel *loadingLabel;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
[_loadingLabel setHidden:true];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (IBAction)didButtonTouched:(id)sender {
NSString *url = @"https://api.noteables.com/editing-session/c180af93-ad3a-4751-a96a-dc47ff7732d4";
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:url]];
[request setHTTPMethod:@"DELETE"];
[request setValue:@"Bearer XXXX" …Run Code Online (Sandbox Code Playgroud) 如何在iOS应用中将本地代码用于SAML集成?我有一个的Objective-C应用程序iOS > iOS7。有没有办法使用本机代码调用SAML身份验证?
我尝试使用Swift将facebook集成到我的应用程序中.我已经在我的应用程序中下载了Facebook SDK.fecebook SDK在Objective-C中.为了在Swift中连接Objective-C文件,我正在创建一个Bridging-Header.h文件并导入FBSDKCoreKit/FBSDKCoreKit.h和FBSDKLoginKit/FBSDKLoginKit.h文件.
但是,打开它时无法连接到它我收到如下错误消息:
我在Build Settings中设置了以下内容:
但我没有连接到它.
如果有人有任何线索,这将是伟大的.
我对Objective-C很新.创建对象数组时遇到问题.在java中,可以创建对象数组,并可以直接访问各个实例.
例如,
SomeClass[] instance = new SomeClass[10];
instance[i].var=10;
Run Code Online (Sandbox Code Playgroud)
在Objective-C中有没有办法做到这一点?我可以使用索引直接访问对象数组中的实例变量吗?一个例子是更多的帮助.提前致谢
#defines如何在Objective-C中工作?
我有C/C++的背景,我现在正在尝试选择Objective-C.#defines似乎在objective-c中的工作方式与它们在c和C++中的工作方式相同,其中编译器只是将所有对定义的引用替换为它们应该表示的内容.
当我尝试在Objective-C中使用#defines时,它们有时只能工作.就像我做这样的事情;
#define NUMBER 5
int myArray[NUMBER];
Run Code Online (Sandbox Code Playgroud)
我得到编译器错误,说有一个方括号丢失,如果我使用这一行而不是它工作正常;
int myArray[5];
Run Code Online (Sandbox Code Playgroud)
当然这些都应该是一回事吗?
此外,如果我尝试在任何类型的方程中使用#define值,我会得到类似的编译器错误.这段代码不起作用;
#define NUMBER 5
float var = NUMBER * 0.2;
Run Code Online (Sandbox Code Playgroud)
哪个好,
float var = 5 * 0.2;
Run Code Online (Sandbox Code Playgroud)
任何人都知道为什么会这样,或者Objective-C编译器如何以不同的方式处理#defines.顺便说一下,我正在使用XCode,只是因为这会产生影响.
我正在尝试将使用预定义颜色列表的现有程序从 Objective-C 转换为 Swift。原始代码使用 Selector 提取一个UIColor基于它的名称表示为NSString
#define UIColorFromRGB(rgbValue) [UIColor colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 green:((float)((rgbValue & 0xFF00) >> 8))/255.0 blue:((float)(rgbValue & 0xFF))/255.0 alpha:1.0]
-(UIColor *)getColor:(NSString*)colorName
{
SEL selColor = NSSelectorFromString(colorName);
NSString *errorMessage = [NSString stringWithFormat:@"Invalid color name: %@ !!!", colorName];
NSAssert([UIColor respondsToSelector:selColor] == YES, errorMessage);
UIColor *mycolor = [UIColor performSelector:selColor];
return mycolor;
}
+ (instancetype)turquoiseColor {
return UIColorFromRGB(0x40E0D0);
}
+ (instancetype)mediumTurquoiseColor {
return UIColorFromRGB(0x48D1CC);
}
Run Code Online (Sandbox Code Playgroud)
但是,我一直无法弄清楚如何使用 Swift 3.0 实现相同的功能,或者使用 Selector 是否是最好的技术。
func UIColorFromRGB(_ rgbValue: UInt) -> UIColor …Run Code Online (Sandbox Code Playgroud) 据我所知,Xamarin将c#转换为二进制文件,并使用mtouch做到这一点。
LLVM是将Objective-C覆盖为二进制代码的XCode方式。
因此,Xamarin不使用LLVM。
请纠正我,如果我错了
我正在尝试添加删除按钮作为图像中的子视图。这是我当前的结构:
-> class DesignViewController: UIViewController
|
-> class Sticker: UIImageView, UIGestureRecognizerDelegate
|
-> UI button inside the Sticker
在 Sticker 类中我有:
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
let button2 = UIButton(frame: CGRect(x: 100, y: 100, width: 100, height: 50))
button2.backgroundColor = .red
button2.setTitle("Delete", for: .normal)
button2.tag = 23
button2.addTarget(self, action: #selector(buttonAction), for: .touchUpInside)
self.addSubview(button2)
}
@objc func buttonAction(sender: UIButton!) {
print("Button tapped")
}
Run Code Online (Sandbox Code Playgroud)
没有buttonAction被调用。当我将self.addSubview(button2)线路更改为:
self.superview?.addSubview(button2)
Run Code Online (Sandbox Code Playgroud)
我可以看到buttonAction有人打电话。不过,我想将按钮保留在贴纸视图内,以便当用户移动贴纸时,按钮会作为子视图随之移动。
谁能帮忙并让我知道如何将按钮保留在贴纸视图中?
objective-c ×8
ios ×7
swift ×3
xcode ×3
api ×1
arrays ×1
atomic ×1
c ×1
cocoa ×1
cocoa-touch ×1
facebook ×1
iphone ×1
llvm ×1
nonatomic ×1
oop ×1
properties ×1
saml ×1
selector ×1
swift3 ×1
swift4 ×1
uibutton ×1
uicolor ×1
uiimageview ×1
uitableview ×1
xamarin ×1